Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 2387f12f1a build(make): enable strict bash execution with oneshell
- Run each recipe in a single Bash shell
- Enable -euo pipefail for deterministic failure handling
- Ensure make aborts immediately on errors (e.g. permission issues)
- Use /bin/bash explicitly to avoid env resolution problems

https://chatgpt.com/share/69481ec8-8a3c-800f-9de8-256e1c10896a
2025-12-21 17:22:29 +01:00
kevinveenbirkenbach b9cb69be8b fix(shellcheck): resolve SC2206 by safe array population
* Replace unquoted array expansion with mapfile-based parsing
* Prevent word splitting and globbing in compute_exclude_csv
* Keep behavior identical while satisfying ShellCheck

https://chatgpt.com/share/69481b6b-02f8-800f-91c8-bbc6592f97b4
2025-12-21 17:07:48 +01:00
kevinveenbirkenbach 63f6b0b0ba Release version 0.3.4 v0.3.4 2025-12-21 17:03:36 +01:00
kevinveenbirkenbach 6726f36799 feat(sys-util-git-pull): introduce reusable shallow git pull role with tag pinning
- Add new role sys-util-git-pull as a generic system utility
- Implement robust shallow clone/update logic in Python helper
- Support detached-safe branch updates and optional tag pinning
- Handle annotated vs lightweight tags and heal local tag conflicts
- Provide deterministic Ansible change detection via machine-readable output
- Add verbose logging to stderr for debuggability
- Integrate sys-util-git-pull into pkgmgr role to replace inline git logic
- Add comprehensive unit tests (option A: file-based import) for helper script
- Add role README and meta information with platform-agnostic support
- Ensure role conforms to existing test expectations (meta/main.yml present)

https://chatgpt.com/share/69481902-a98c-800f-9b3f-9ee13e8e50b7
2025-12-21 16:57:45 +01:00
kevinveenbirkenbach 38c8b59fe0 test(integration): ignore **pycache** directories in role validation tests
https://chatgpt.com/share/69481867-784c-800f-ab60-50ce3b241dd4
2025-12-21 16:55:06 +01:00
kevinveenbirkenbach 30d557ef0d chore(format): add formatter target and apply shfmt/ruff formatting
- Add `make format` target running shfmt + ruff format + ruff check --fix
- Reformat shell scripts with shfmt
- Apply ruff formatting and autofixes across Python code

https://chatgpt.com/share/69480c5a-b0bc-800f-9a2b-770d98c1b6ff
2025-12-21 16:03:48 +01:00
kevinveenbirkenbach f406db2869 Merge pull request #42 from kevinveenbirkenbach/alert-autofix-125
Potential fix for code scanning alert no. 125: Use of the return value of a procedure
2025-12-21 15:51:48 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI d0a2890a08 Potential fix for code scanning alert no. 125: Use of the return value of a procedure
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-21 15:51:36 +01:00
kevinveenbirkenbach b5b38969aa fix(pkgmgr): pin shallow clone to stable tag
https://chatgpt.com/share/69480915-e56c-800f-ae51-674cad8fbeff
2025-12-21 15:49:53 +01:00
kevinveenbirkenbach 1fe0a420fa fix(cli): avoid runpy warnings by moving logic into command modules
Stop importing __main__ from package __init__.py to prevent runpy RuntimeWarning when using `python -m`.

- Move CLI logic into command.py modules
- Keep __main__.py as thin wrappers
- Update unit tests to import command modules directly

https://chatgpt.com/share/6947fb8e-550c-800f-8323-e36f92cb5bba
2025-12-21 14:52:09 +01:00
kevinveenbirkenbach f9573460e9 fix(deploy): force local CLI build for invokable resolution
- Drop legacy compatibility wrapper in cli.meta.applications.invokable
- Resolve repository root explicitly via pathlib
- Ensure filter_plugins are importable outside Ansible
- Run invokable discovery with INSTALL_LOCAL_BUILD=1 in deploy tests
- Make deploy.sh fail fast when invokable resolution is unavailable
- Normalize sorting and exclusion logic (drv-* roles, locale-safe sort)
2025-12-21 14:27:21 +01:00
kevinveenbirkenbach 2cf4d880ae Optimized deploy run names 2025-12-21 12:34:46 +01:00
kevinveenbirkenbach bef7834a36 Set missing run once flag 2025-12-21 12:12:38 +01:00
kevinveenbirkenbach 25b8db9d39 Merge branch 'master' of github.com:kevinveenbirkenbach/infinito-nexus 2025-12-21 11:54:20 +01:00
kevinveenbirkenbach 79785ea531 Merge branch 'master' of github.com:kevinveenbirkenbach/infinito-nexus 2025-12-21 11:53:55 +01:00
kevinveenbirkenbach 8590e32bf1 Merge branch 'master' of github.com:kevinveenbirkenbach/infinito-nexus 2025-12-21 11:52:15 +01:00
kevinveenbirkenbach ce19fed69a Increased verbosity 2025-12-21 11:52:04 +01:00
kevinveenbirkenbach 5c8a6e00ec Merge pull request #41 from kevinveenbirkenbach/alert-autofix-120
Potential fix for code scanning alert no. 120: Empty except
2025-12-21 11:45:47 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI d3020ce1a4 Potential fix for code scanning alert no. 120: Empty except
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-21 11:42:31 +01:00
kevinveenbirkenbach 9e72a8fd04 Merge pull request #40 from kevinveenbirkenbach/alert-autofix-121
Potential fix for code scanning alert no. 121: Empty except
2025-12-21 11:42:01 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI efe7429c8b Potential fix for code scanning alert no. 121: Empty except
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-21 11:41:45 +01:00
kevinveenbirkenbach fd54faff65 refactor(ansible): replace pacman installs with package
Migrate most roles from community.general.pacman to the generic package module for better portability. Keep pacman where it is required (system upgrades and Arch-specific tasks). Split VirtualBox setup into an Arch-only task file and add a warning when skipped on non-Arch systems. Update integration test examples accordingly.

https://chatgpt.com/share/6947ce9f-3228-800f-8365-2253b5ed9451
2025-12-21 11:40:10 +01:00
kevinveenbirkenbach 70497bd404 fix(docker): install openssh-client on Debian/Ubuntu images
https://chatgpt.com/share/6947ca03-4b00-800f-b9a3-6a9dc148a739
2025-12-21 11:20:39 +01:00
kevinveenbirkenbach e97186ffec Removed unused colorama library 2025-12-21 11:15:17 +01:00
kevinveenbirkenbach 71c541ee05 test(cli): use unittest.mock.patch consistently
- Remove direct imports of unittest.mock alias
- Use unittest.mock.patch via unittest for all test decorators
- Keep behavior identical while simplifying imports
2025-12-21 11:10:03 +01:00
kevinveenbirkenbach cc9c2dceb8 fix(ci,nix): forward NIX_CONFIG into docker build and runtime to avoid GitHub rate limits
- Export NIX_CONFIG in CI jobs and Makefile
- Pass NIX_CONFIG as docker build-arg
- Use NIX_CONFIG only in relevant Dockerfile RUN steps (no secret persistence)
- Forward NIX_CONFIG to test and deploy containers

https://chatgpt.com/share/6947c681-abc8-800f-ba12-de2ff3a7abad
2025-12-21 11:05:31 +01:00
kevinveenbirkenbach d381111150 Merge branch 'master' of github.com:kevinveenbirkenbach/infinito-nexus 2025-12-21 10:46:31 +01:00
kevinveenbirkenbach 6eb35ef450 refactor(cli): remove wildcard re-exports from __init__ wrappers
Replace `from .__main__ import *` with controlled re-exports based on `__all__`
to avoid namespace pollution and improve static analysis.

Public APIs remain unchanged while making re-export behavior explicit and
lint-friendly across all CLI subpackages.

https://chatgpt.com/share/6947c1d6-23d0-800f-9910-008ee277213c
2025-12-21 10:45:51 +01:00
kevinveenbirkenbach 069175f717 Merge pull request #39 from kevinveenbirkenbach/alert-autofix-117
Potential fix for code scanning alert no. 117: Use of a print statement at module level
2025-12-21 10:37:50 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI 98c001f419 Potential fix for code scanning alert no. 117: Use of a print statement at module level
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-21 10:37:39 +01:00
kevinveenbirkenbach 167b8eb7ac fix(aur): run yay installs as aur_builder instead of root
- Execute all AUR package installations with become_user=aur_builder
- Prevent yay from running as root to avoid systemd/dbus failures
- Align desktop and driver roles with dev-yay build model
- Fix missing trailing newlines in task files

https://chatgpt.com/share/6947bec6-cce8-800f-b499-47c3aeb00663
2025-12-21 10:32:49 +01:00
kevinveenbirkenbach a7e7631558 Release version 0.3.3 v0.3.3 2025-12-21 00:59:00 +01:00
kevinveenbirkenbach a76d449948 Merge branch 'feature/refactoring-cli' 2025-12-21 00:56:44 +01:00
kevinveenbirkenbach 2c906fe30f Updated .dockerignore 2025-12-21 00:49:50 +01:00
kevinveenbirkenbach e23187bccb refactor(deploy): remove skip-tests option from dedicated deploy
- Drop --skip-tests CLI flag and runner parameter
- Remove test phase execution from deploy workflow
- Update unit tests to match simplified deploy flow

https://chatgpt.com/share/69473607-22e4-800f-845b-a628677fb8b9
2025-12-21 00:49:21 +01:00
kevinveenbirkenbach 40530d33b3 fix(ansible): run ansible-galaxy via venv python and normalize gitignore
- Execute ansible-galaxy using the active virtualenv to avoid missing PATH issues
- Ensure Ansible collections install works in CI and container environments
- Normalize .gitignore by adding trailing newline

https://chatgpt.com/share/694731a8-0300-800f-8785-6011e414994b
2025-12-21 00:35:07 +01:00
kevinveenbirkenbach 897fb8db2d chore(ansible): add local collections support and unify install workflow
- Ignore locally installed Ansible collections directory
- Add install-ansible target using requirements.yml
- Split install into venv, python, and ansible steps
- Configure ansible.cfg to use local collections and roles paths
- Clean up Makefile PHONY targets and fix test dependency

https://chatgpt.com/share/694731a8-0300-800f-8785-6011e414994b
2025-12-21 00:30:43 +01:00
kevinveenbirkenbach f0c89a253c fix(make): do not fail clean outside git repository
`make clean` now only warns when not inside a git repo instead of aborting,
allowing CI/container workflows to continue safely.

https://chatgpt.com/share/69472c45-fdc8-800f-8c0a-57b5bfaa4403
2025-12-21 00:07:53 +01:00
kevinveenbirkenbach fcfb37beba fix(dockerfile): prevent CentOS Stream from matching Fedora install path
- Match Fedora Docker CLI install only on ID=fedora
- Remove fedora from RHEL/CentOS ID_LIKE matching
- Ensure CentOS Stream 9 is handled by the RHEL/CentOS branch
- Avoid invalid docker-cli/moby-engine installs on CentOS

https://chatgpt.com/share/69472a4d-ac6c-800f-b5e1-e2fcd815ded0
2025-12-21 00:05:34 +01:00
kevinveenbirkenbach e3dcd4b2a6 fix(dockerfile): avoid curl conflicts on CentOS Stream and reduce redundant installs
- Drop explicit ca-certificates/curl installs on Fedora and RHEL/CentOS paths
- Rely on pkgmgr base images for common tooling
- Prevent curl vs curl-minimal conflicts on CentOS Stream 9
- Keep Docker CLI installation logic unchanged

https://chatgpt.com/share/69472a4d-ac6c-800f-b5e1-e2fcd815ded0
2025-12-20 23:59:13 +01:00
kevinveenbirkenbach 8c6d694c66 Solved Dockerfile bug 2025-12-20 23:47:51 +01:00
kevinveenbirkenbach 103659a534 refactor(deploy): modularize dedicated deploy CLI and fix make cwd issue
- Split dedicated deploy logic into focused modules (apps, modes, paths, proc, runner)
- Ensure all make targets run from the repository root via explicit cwd handling
- Fix "make: No rule to make target" errors caused by incorrect working directory
- Slim down __main__ to a thin CLI entrypoint
- Rework unit tests into one file per module and expand coverage

https://chatgpt.com/share/69472632-9740-800f-962c-bcb4474963d6
2025-12-20 23:41:41 +01:00
kevinveenbirkenbach 378d41e9fb Optimized path 2025-12-20 23:08:58 +01:00
kevinveenbirkenbach 59a68ff940 fix(inventory): run credentials generator via module instead of file path
Switch credentials generation to `python -m cli.create.credentials` to avoid
fragile file path execution after package migration and ensure the correct
interpreter and environment are used.

https://chatgpt.com/share/69471879-cd18-800f-a390-efa23d9d1813
2025-12-20 22:43:15 +01:00
kevinveenbirkenbach a354992f27 refactor(create-inventory): modularize CLI, stabilize path handling, add unit tests
- Split create-inventory logic into focused modules (cli, project, filters, host_vars, credentials, etc.)
- Replace fragile path construction with python -m module execution
- Add robust project root detection
- Centralize password generation
- Improve test coverage with per-module unit tests
- Preserve existing inventory and host_vars behavior

https://chatgpt.com/share/69471157-79c0-800f-8dec-25c0f8e38f03
2025-12-20 22:12:44 +01:00
kevinveenbirkenbach 3da6e3a23e refactor(cli): modularize dispatcher and improve command discovery
https://chatgpt.com/share/6947052d-76fc-800f-9db3-98de6894ceb0
2025-12-20 21:20:47 +01:00
kevinveenbirkenbach 23ce1e50b2 fix(inventory): correct project root detection to avoid duplicate cli path
Fix detect_project_root() to return the actual repository root instead of the
cli directory. This prevents incorrect path construction like `cli/cli/...`
when invoking build inventory scripts.

https://chatgpt.com/share/6946fe09-8730-800f-8eca-2503df61d9ae
2025-12-20 20:50:26 +01:00
kevinveenbirkenbach 20d03575e7 fix(deploy): mount project root instead of cli/deploy in CI container
https://chatgpt.com/share/6946f9a9-bf94-800f-adab-f1baf49e1e12
2025-12-20 20:37:10 +01:00
kevinveenbirkenbach 9ef2d86fd9 test(deploy): add preflight check for entry.sh in deploy image
https://chatgpt.com/share/6946f9a9-bf94-800f-adab-f1baf49e1e12
2025-12-20 20:31:47 +01:00
kevinveenbirkenbach fdcc910ce9 fix(tests, docker): pin Python venv inside image and stop leaking host PYTHON
- Define PYTHON and PIP explicitly in Dockerfile (/opt/venvs/infinito)
- Remove PYTHON env passthrough from test container runs
- Prevent host virtualenv paths from breaking container tests
- Align .dockerignore build path handling

https://chatgpt.com/share/6946f090-52b8-800f-919d-d534ae4ea163
2025-12-20 20:16:54 +01:00