Commit Graph
859 Commits
Author SHA1 Message Date
kevinveenbirkenbach 653d56b4a4 fix(ci): allow SARIF uploads in reusable workflows
Grant security-events: write to CI callers and code-analyses, and drop unnecessary actions permission from Docker lint job to fix reusable workflow permission errors.

https://chatgpt.com/share/6943c031-bc04-800f-ae09-4ac1f9ff48c9
2025-12-18 09:49:48 +01:00
kevinveenbirkenbach 9ad107f628 ci: align workflow permissions with reusable code-analyses workflow
Grant packages:read to all CI caller workflows to satisfy permissions
required by the reusable code-analyses workflow and avoid permission
mismatch errors.

https://chatgpt.com/share/6943becc-3148-800f-85e4-8ca917c8bb94
2025-12-18 09:43:52 +01:00
kevinveenbirkenbach d28e63bdf0 chore(ci): set explicit workflow permissions for GITHUB_TOKEN
https://chatgpt.com/share/6943bd97-5324-800f-94e2-68d25a45d03a
2025-12-18 09:39:07 +01:00
kevinveenbirkenbach 9b334edd9e Merge pull request #8 from kevinveenbirkenbach/dependabot/github_actions/actions/setup-python-6
Bump actions/setup-python from 5 to 6
2025-12-18 09:31:34 +01:00
kevinveenbirkenbach c1570748a8 Merge pull request #9 from kevinveenbirkenbach/dependabot/github_actions/github/codeql-action-4
Bump github/codeql-action from 3 to 4
2025-12-18 09:31:03 +01:00
kevinveenbirkenbach af032d1801 ci: introduce reusable code-analyses pipeline and orchestrators
- Add reusable code-analyses workflow (workflow_call + dispatch)
- Split CI triggers into push, PR, schedule, and version orchestrators
- Remove duplicate triggers from reusable workflows
- Rename and align workflows for clearer CI structure

https://chatgpt.com/share/6943b12d-2c84-800f-b63d-68e4d1db6d0a
2025-12-18 09:30:28 +01:00
dependabot[bot] 72fbc77597 Bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 08:02:50 +00:00
dependabot[bot] 6c42228b03 Bump github/codeql-action from 3 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 08:02:34 +00:00
kevinveenbirkenbach 3df8c96b84 Merge pull request #7 from kevinveenbirkenbach/dependabot/github_actions/hadolint/hadolint-action-3.3.0
Bump hadolint/hadolint-action from 2.1.0 to 3.3.0
2025-12-18 09:02:17 +01:00
kevinveenbirkenbach 7de0a16609 Merge pull request #6 from kevinveenbirkenbach/dependabot/github_actions/actions/checkout-6
Bump actions/checkout from 4 to 6
2025-12-18 09:01:26 +01:00
kevinveenbirkenbach c11600d0ea ci: tighten hadolint and codeql security checks
- Fail Hadolint on warnings and errors
- Enable extended and security-and-quality CodeQL queries

https://chatgpt.com/share/6943b12d-2c84-800f-b63d-68e4d1db6d0a
2025-12-18 08:52:00 +01:00
dependabot[bot] 46a0ce3fe0 Bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 07:47:19 +00:00
dependabot[bot] 7ddf99b6ac Bump hadolint/hadolint-action from 2.1.0 to 3.3.0
Bumps [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) from 2.1.0 to 3.3.0.
- [Release notes](https://github.com/hadolint/hadolint-action/releases)
- [Commits](https://github.com/hadolint/hadolint-action/compare/f988afea3da57ee48710a9795b6bb677cc901183...2332a7b74a6de0dda2e2221d575162eba76ba5e5)

---
updated-dependencies:
- dependency-name: hadolint/hadolint-action
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 07:47:07 +00:00
kevinveenbirkenbach d8fd8448d4 ci: centralize lint and security workflows via workflow_call
- Convert Hadolint and CodeQL workflows to reusable workflow_call
- Keep scheduled scans for Dockerfile hygiene and security analysis
- Integrate lint-docker and security-codeql into mark-stable gate
- Rename workflows for consistent lint/security naming

https://chatgpt.com/share/6943b12d-2c84-800f-b63d-68e4d1db6d0a
2025-12-18 08:45:38 +01:00
kevinveenbirkenbach 36d623b6f6 chore(deps): simplify dependabot config and remove unsupported ansible ecosystem
https://chatgpt.com/share/6943ae58-e578-800f-904e-b3b3d8a37b2e
2025-12-18 08:33:25 +01:00
kevinveenbirkenbach 558be6fd4a Add CodeQL analysis workflow configuration 2025-12-18 03:43:56 +01:00
kevinveenbirkenbach 8b887e47e9 Add Hadolint workflow for Dockerfile linting
This workflow runs Hadolint to analyze Dockerfiles and uploads results.
2025-12-18 03:38:13 +01:00
kevinveenbirkenbach 082195016e Update dependabot.yml with package ecosystems
Added configurations for various package ecosystems including Python, GitHub Actions, Docker, and Ansible.

https://chatgpt.com/share/694367f4-f52c-800f-9b16-04c8db37fd5e
2025-12-18 03:33:39 +01:00
kevinveenbirkenbach be22f8ec1f Required to change back to /opt/venvs/ due to runner and root executing infinito 2025-12-18 01:47:31 +01:00
kevinveenbirkenbach 6f5cc2302f Added missing source 2025-12-18 00:55:03 +01:00
kevinveenbirkenbach c28468eb3c Activate venv after pkgmgr setup 2025-12-18 00:50:13 +01:00
kevinveenbirkenbach 2cf7e6c81d Changed venv path 2025-12-18 00:47:34 +01:00
kevinveenbirkenbach 7bc5ba4ff7 Activated venv for pkgmgr 2025-12-17 23:47:40 +01:00
kevinveenbirkenbach d0c9e97907 Added missing shallow 2025-12-17 23:20:37 +01:00
kevinveenbirkenbach d60130376d Set 'pkgmgr install infinito --clone-mode --no-verification' for install test. 2025-12-17 23:03:02 +01:00
kevinveenbirkenbach efdb099479 ci(test-install-make): activate Infinito.Nexus venv before invoking CLI
Ensure the Infinito.Nexus virtual environment is activated inside the
pkgmgr virgin container so the `infinito` console script is available
on PATH during test execution.

This validates the editable install and CLI entry point without relying
on pkgmgr internals.

https://chatgpt.com/share/6942df9e-6af0-800f-aeec-324418740cbb
2025-12-17 17:51:35 +01:00
kevinveenbirkenbach 18ab76278c Added correct image for pkgmgr 2025-12-17 17:32:10 +01:00
kevinveenbirkenbach 46ac48598f ci: consolidate install tests and fix pkgmgr/make workflows
- Replace legacy nix/virgin install jobs with make- and pkgmgr-based install tests
- Add distro matrix install test using pkgmgr virgin containers
- Ensure deterministic working directories via explicit Docker mounts and -w
- Register infinito CLI entrypoint by packaging main.py explicitly
- Simplify mark-stable gate to reflect new install strategy

https://chatgpt.com/share/6942da66-ceb0-800f-8ebe-444e5b638f25
2025-12-17 17:29:06 +01:00
kevinveenbirkenbach 82f3166ca9 Added lint for ansible and fixed integration test implementation 2025-12-17 12:53:49 +01:00
kevinveenbirkenbach b94c0fc050 Optimized workflow calls 2025-12-17 12:27:39 +01:00
kevinveenbirkenbach 8dd4d6f42d Implemented calling on workflow 2025-12-17 12:25:25 +01:00
kevinveenbirkenbach d165ed27bc Optimized tests 2025-12-17 12:22:36 +01:00
kevinveenbirkenbach c94cc2d676 Implemented static code testing 2025-12-17 12:12:22 +01:00
kevinveenbirkenbach 75ee4c737d Optimized linter 2025-12-17 09:24:30 +01:00
kevinveenbirkenbach b5749415d1 Added ruff linter 2025-12-16 22:24:57 +01:00
kevinveenbirkenbach 0d18d86243 Add --vars support to inventory creation, implement deep JSON overrides for host_vars, and update CI workflow to pass MASK_CREDENTIALS_IN_LOGS=false.
Includes:
- New apply_vars_overrides() with deep merge logic
- New --vars CLI argument in cli/create/inventory.py
- Added unit tests for vars handling in test_inventory.py
- Updated test-deploy workflow to pass --vars in all deploy phases

Ref: ChatGPT conversation https://chatgpt.com/share/69320f49-6c00-800f-8875-49d36935ae3a
2025-12-04 23:48:43 +01:00
kevinveenbirkenbach bf0134b9c5 Extend inventory creation with --authorized-keys support, unify PATH_ADMINISTRATOR_HOME resolution via group_vars, update CI workflow to pass dummy SSH key, and add full unit test coverage for new features.
See details: https://chatgpt.com/share/6931f775-12d4-800f-9ccb-e6ce52097f9c
2025-12-04 22:06:10 +01:00
kevinveenbirkenbach f2ace362bc Refactor container deploy pipeline:
- Replace inline shell scripts with Python-driven orchestration
- Introduce inner dockerd started via detached docker run
- Add docker exec–based inventory creation and dedicated deploy execution
- Add automatic vault password generation for CI
- Update GitHub Actions workflow to use new container deploy wrapper
- Add complete unit test suite for container deploy behavior
- Fix CLI argument forwarding and ensure single docker run call

Conversation reference:
https://chatgpt.com/share/6931c45d-4e40-800f-852f-6c9b1f7dc281
2025-12-04 18:27:15 +01:00
kevinveenbirkenbach bb4391d083 Fix Docker-in-Docker cgroup isolation issues by adding --cgroupns=host
The GitHub Actions DinD environment failed to start inner containers due to
cgroup v2 namespace isolation problems ('cannot enter cgroupv2 ... invalid state').
To resolve this, all docker run calls inside the CI workflow were updated
to include --cgroupns=host, ensuring the inner dockerd inherits the host
cgroup namespace instead of being sandboxed.

This aligns the CI runtime with the expectations of runc and prevents OCI-level
container creation failures.

Details and troubleshooting steps documented here:
https://chatgpt.com/share/6930e285-9604-800f-aad8-7a81c928548c
2025-12-04 02:41:20 +01:00
kevinveenbirkenbach c0980e91c0 Fix CI Docker-in-Docker deployment, introduce vfs storage-driver, add inner dockerd bootstrap, enable portable json-file logging when running inside a container, and update workflow triggers for multi-branch testing.
Includes:
- Rewrite of test-deploy workflow to use isolated inner dockerd with privileged mode.
- Switch logging drivers to 'json-file' when IS_CONTAINER=true for compatibility with non-systemd CI runners.
- Adjust Dockerfile to install docker CLI and simplify package setup.
- Improve inventory creation and deploy steps for CI stability.
- Fully compatible with Ansible 2.20 variable handling.

Conversation reference:
https://chatgpt.com/share/6930e285-9604-800f-aad8-7a81c928548c
2025-12-04 02:24:10 +01:00
kevinveenbirkenbach 91d5ba35d1 Add container-aware execution logic and CI stability fixes
- Introduce global IS_CONTAINER flag based on ansible_virtualization facts
- Skip systemd-based handlers and tasks when running inside containers
- Extend EXCLUDED_ROLES list in GitHub Actions test-deploy workflow
- Ensure docker.sock is mounted for all CI deploy stages
- Improve sys-svc-docker by suppressing service restarts inside containers
- Add meta: flush_handlers to properly trigger delayed docker restarts
- Update sys-service handlers with container guards
- Update sys-timer tasks to avoid systemctl inside CI containers
- Enhance drv-non-free role with Manjaro detection and mhwd fallback warning
- Skip swapfile generation in containers
- Minor service template fixes and cleanup in proxy.conf.j2

Details and discussion: https://chatgpt.com/share/6930a4ca-56f4-800f-9b3d-4791f040a03b
2025-12-03 22:00:18 +01:00
kevinveenbirkenbach 84d3c8fc16 Optimized ignoring of LID driver 2025-12-03 20:07:02 +01:00
kevinveenbirkenbach 9182d14175 Ignored LID Switch Driver 2025-12-03 19:43:29 +01:00
kevinveenbirkenbach a31ef07718 Refactor CI workflows and fix timezone handling in containers
- Renamed test-cli.yml to test-code.yml and updated job name.
- Extended timeout for test-deploy workflow from 30 to 240 minutes.
- Skipped Ansible timezone configuration inside Docker/Podman/containerd to avoid write errors in CI.
- Added --skip-tests to the initial deploy step for improved CI stability.

Origin: https://chatgpt.com/share/69301c58-6628-800f-9e3a-f026c01b6e17
2025-12-03 12:17:59 +01:00
kevinveenbirkenbach 1cee61d00c Removed no-cache to raise performance 2025-12-03 00:30:53 +01:00
kevinveenbirkenbach 46174125bc Refine deploy CLI, test-deploy workflow and Ansible output
Changes:
- Update GitHub Actions test-deploy workflow to run three staged deploys (normal+debug, reset+debug, async) using inventory-generated vault password files.
- Switch Ansible stdout_callback to ansible.builtin.default and enable YAML-style result_format via callback_default.
- Refactor cli/deploy.py: typed run_ansible_playbook(), structured MODE_* handling, better error reporting, and preserved vault/interactive behaviour.
- Add unit tests for deploy CLI (bool parsing, MODE_* loading, dynamic args, validation, and ansible-playbook command construction) under tests/unit/cli/test_deploy.py.

Context: see ChatGPT conversation on 2025-12-02: https://chatgpt.com/share/692f1035-6bc4-800f-91a9-342db54e1a75
2025-12-02 20:25:26 +01:00
kevinveenbirkenbach f21bf5d459 Improve test-deploy workflow:
- Switch to Python-based vault password generation
- Export VAULT_PASSWORD for internal container usage
- Add first deploy with --debug
- Add second deploy with --reset --debug
- Add third async deploy (no debug)
- Remove incorrect volume copy step and create vault file inside container
Conversation reference: https://chatgpt.com/share/692f1035-6bc4-800f-91a9-342db54e1a75
2025-12-02 19:33:07 +01:00
kevinveenbirkenbach 20ecb62afe CI: Improve Docker reliability for pacman by enforcing host networking
This change updates test-cli.yml to use --network=host for docker build
and docker run steps. This significantly reduces intermittent Arch mirror
timeouts observed in local and CI environments.

Reference:
https://chatgpt.com/share/692f1bd7-f144-800f-b2ac-900d78a69e9d
2025-12-02 18:03:36 +01:00
kevinveenbirkenbach 63f6723106 Added GitHub Workflow Draft: Test deploy; Version 2 - https://chatgpt.com/share/692f1035-6bc4-800f-91a9-342db54e1a75 2025-12-02 17:33:24 +01:00
kevinveenbirkenbach c424afa935 Fix CLI workflow and container startup
- Updated GitHub Actions workflow to call `infinito make ...` inside container
- Simplified Dockerfile CMD to run `infinito --help` and keep container alive
- Adjusted docker-compose.yml to use explicit image name

See: https://chatgpt.com/share/68cde606-c3f8-800f-8ac5-fc035386da87
2025-09-20 01:24:20 +02:00