Commit Graph
859 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Sonnet 4.6 9a2878e109 refactor(ci): extract debug auth mode step into separate script
Move inline shell from entry-pull-request-change.yml into
scripts/meta/debug/auth_mode.sh and pass secrets via env vars.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 22:08:34 +02:00
kevinveenbirkenbach db44c998c2 fix codeql workflow coverage 2026-04-08 18:14:10 +02:00
kevinveenbirkenbach 3dc243fb0d fix dependabot coverage and environment test scripts 2026-04-08 18:01:42 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 821c3c53b6 feat(pre-commit): introduce pre-commit hook enforcement and modular environment test suite
- Add .pre-commit-config.yaml running make test on non-doc changes
- Add pre-commit to pyproject.toml dev dependencies
- Add scripts/install/pre-commit.sh for hook registration
- Add install-python-dev Makefile target; wire into environment-bootstrap
- Rename setup-development → mark-development (env.ci override marker)
- Refactor scripts/tests/environment.sh into modular 00–10 scripts with orchestrator
- Add 09_commit.sh validating pre-commit enforcement and --no-verify bypass
- Update docs/agents/action/commit.md and testing.md for new hook behavior
- Update makefile.md, setup.md, installation.md accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 16:58:24 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 0ce6b1347c refactor(annotations): move to utils/annotations, add step summary support
- Move utils/gha/annotations.py → utils/annotations/message.py
- Move scripts/gha/summarize_annotations.py → utils/annotations/summarize.py
- Keep utils/gha/annotations.py as compatibility shim
- Update all imports across codebase to utils.annotations.message
- Wire tee + summary step into test-code-lint, unit, and integration workflows
- Add unit tests for utils/annotations/summarize (20 tests)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 14:05:24 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 cdcd96cb8a feat(dependabot): enable all supported ecosystems with daily schedule at midnight
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 13:32:49 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1a7a63cac3 feat(gha): add all CodeQL-supported languages to security scan matrix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 13:27:15 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 5e970ff5bd feat(gha): introduce utils/gha/annotations for GitHub Actions workflow annotations
- Add utils/gha/annotations.py with warning/error/notice helpers and *_each
  variants that emit one annotation per list item
- Use warning() in GHCRProvider._set_public for missing GHCR_PAT case
- Expose GHCR_PAT_SET env var in mirror step to distinguish missing-PAT from
  real API failures
- Add unit tests for all annotation functions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 10:59:46 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 7c8783c623 fix(mirror): use GHCR_PAT for package visibility API and remove ensure_public from skip path
Root cause: GITHUB_TOKEN in Actions is repo-scoped and cannot change package
visibility in user/org namespaces — all 58 mirror operations failed with 404.

- Use GHCR_PAT (which has write:packages scope) as GITHUB_TOKEN in the mirror
  step, falling back to GITHUB_TOKEN if GHCR_PAT is not set
- Remove ensure_public() call from the already-exists skip path (wrong place:
  existing images were already made public when first mirrored)
- Update test to assert ensure_public is not called for skipped images

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 09:45:38 +02:00
kevinveenbirkenbach 30d92981fe Merge pull request #1 from kevinveenbirkenbach/dependabot/github_actions/docker/login-action-4.1.0
build(deps): bump docker/login-action from 4.0.0 to 4.1.0
2026-04-08 08:46:24 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 b3a4a81e01 fix(mirror): remove redundant mirror job and publish images as public
- Remove redundant `images-mirror-missing` job from entry-pull-request-change.yml
  (mirroring already runs via ci-orchestrator for same-repo PRs)
- Set GHCR package visibility to public after each successful mirror via GitHub API
- Add `ensure_public` hook to base class (no-op for other providers)
- Also call `ensure_public` for already-existing images to fix any that are still private
- Pass GITHUB_TOKEN explicitly to the mirror step
- Add unit tests for _set_public (user/org endpoint fallback) and sync skip-path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 07:45:33 +02:00
dependabot[bot] c1d0711e3d build(deps): bump docker/login-action from 4.0.0 to 4.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/b45d80f862d83dbcd57f89517bcf500b2ab88fb2...4907a6ddec9925e35a0a9e82d7399ccc52663121)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 01:36:02 +00:00
Alejandro Roman 86ea19630e fix(mirror-ci): mirror images for same-repo PRs directly from entry-pull-request.yml 2026-04-07 16:23:40 +04:00
kevinveenbirkenbachandClaude Sonnet 4.6 3bd965c682 ci: remove cancel-on-failure jobs from test workflows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:43:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 3b5bfc071b refactor(ci): rename workflow files to consistent naming scheme
- build-ci-images.yml        → images-build-ci.yml
- cancel-pull-request-runs.yml → entry-pull-request-cancel.yml
- entry-pull-request.yml     → entry-pull-request-change.yml

Update all references in ci-orchestrator.yml and release-version.yml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 21:38:26 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 e22bdc117f ci(pr): skip CI for draft PRs, cancel runs on draft conversion
- Add ready_for_review trigger so CI starts when a draft PR is marked ready
- Guard detect-pr-scope with draft == false to skip all jobs for draft PRs
- Add converted_to_draft to cancel-pull-request-runs.yml to cancel active
  runs when a PR is converted back to draft

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 19:41:08 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 2fa58ecd7f fix(ci): set actions: write in all entry and orchestrator workflows
Required so cancel-on-failure jobs in reusable workflows can call
the GitHub API to cancel the run. Permissions propagate down the
workflow_call chain and must be write at every level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 18:07:14 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 92f6898068 ci: cancel run via API when matrix workflows fail
Add cancel-on-failure job to test-environment, test-install-make, and
test-install-pkgmgr. After all matrix jobs complete, the job cancels
the entire orchestrator run via the GitHub API if any matrix job failed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 17:49:18 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 24e9427abe ci: set fail-fast: true on matrix workflows to fail the run early
Enables fast failure on test-environment, test-install-make, and
test-install-pkgmgr matrix strategies so the overall CI run fails
immediately when a job fails rather than waiting for all jobs to
complete. Trade-off: no cross-distro comparison on failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 17:14:36 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 721e599428 refactor(scripts): rename development.sh to environment.sh
Aligns the script name with the workflow and its purpose.
Updates all references in test-environment.yml and setup.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 12:42:02 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 15ac4f062a refactor(ci): rename test-development.yml to test-environment.yml
Aligns the workflow filename with its job name and purpose.
Updates all references in ci-orchestrator.yml and act/workflow.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 12:39:15 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 8f8fdf0463 fix(ci): remove duplicate test-development workflow call in orchestrator
test-dev-environment-dashboard was triggering test-development.yml a
second time, causing duplicate Environment jobs in the CI run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 12:36:24 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 219e08a611 feat(ci): add run-name to manual CI workflow with distro and apps info
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 12:03:37 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 06a688c59a refactor(deploy): rename APP to APPS throughout the project
Makes clear that multiple space- or comma-separated app ids are
supported. Renames the env var, CLI flag (--app → --apps), and all
references in scripts, workflows, and documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 11:41:31 +02:00
kevinveenbirkenbach 46fc790fdb docs: add playwright role file guidance 2026-03-28 18:30:13 +01:00
kevinveenbirkenbach 7df3c09472 docs: add role file guidance for css and javascript 2026-03-28 18:18:56 +01:00
kevinveenbirkenbach 0200b22298 Normalize scripts layout and Make targets 2026-03-28 09:00:38 +01:00
kevinveenbirkenbach e0f9ef1dd4 refactor: rename deploy ci and act scripts 2026-03-28 06:27:48 +01:00
kevinveenbirkenbach f20c1cdbc6 Refactor CI deploy script entrypoint 2026-03-27 21:51:13 +01:00
kevinveenbirkenbach c2438c2b6a ci: reorganize PR resolver scripts 2026-03-27 15:17:17 +01:00
kevinveenbirkenbach 11149f3434 ci: gate PR workflow by file scope 2026-03-27 14:54:54 +01:00
kevinveenbirkenbach 9a7c03c950 docs: add development guidance and server integrations 2026-03-27 14:35:39 +01:00
kevinveenbirkenbach 9811dc45ad docs: split contributor and support guidance 2026-03-27 12:31:50 +01:00
kevinveenbirkenbach c1c9b90761 Refine CI integration test handling 2026-03-27 02:13:34 +01:00
kevinveenbirkenbach af2705c066 Refine PR template validation checklists 2026-03-26 23:43:38 +01:00
kevinveenbirkenbach d217354c2a Refine contribution and PR template documentation 2026-03-26 23:08:47 +01:00
kevinveenbirkenbach db370fa854 Add CODEOWNERS file 2026-03-26 19:33:08 +01:00
kevinveenbirkenbach 08db65b279 Improve pull request template chooser guidance 2026-03-26 18:47:44 +01:00
kevinveenbirkenbach 43cbae14c8 Add pull request template chooser 2026-03-26 18:35:17 +01:00
kevinveenbirkenbach 52202261dc Refactor pull request templates by contribution type 2026-03-26 18:22:21 +01:00
kevinveenbirkenbach 827c12c903 refactor(ci): extract hadolint SARIF check into utils 2026-03-26 16:21:55 +01:00
kevinveenbirkenbach b4b863676c Fix cancellation of closed fork PR runs 2026-03-26 08:31:12 +01:00
kevinveenbirkenbach 1c47e21a20 Merge pull request #106 from AlejandroRomanIbanez/feature/makefile-wsl2
Feature/makefile wsl2
2026-03-26 07:20:18 +01:00
kevinveenbirkenbach 966b2cce5f qMerge branch 'main' into feature/makefile-wsl2 2026-03-26 07:19:33 +01:00
dependabot[bot] bc58b27eaa build(deps): bump actions/upload-artifact from 4 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 01:44:23 +00:00
kevinveenbirkenbach cc910167e9 Guard empty deploy matrices and ignore JSON docker scan 2026-03-25 15:44:56 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 dc9ef23df8 feat: add Docker image version check integration test and CI workflow
- Add tests/integration/test_docker_image_versions.py that checks all
  roles/web-*/config/main.yml for outdated semver-compatible Docker image
  versions against Docker Hub
- Non-Docker-Hub images (ghcr.io etc.) are listed as unchecked with their
  current version
- Suppress individual checks with # nocheck: docker-version above version:
- GitHub Actions ::warning:: annotations are emitted in CI
- Add .github/workflows/test-docker-image-versions.yml as standalone workflow
- Integrate workflow into ci-orchestrator.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 15:44:54 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 b50d84b5b3 feat: upload Playwright screenshots as GitHub Actions artifacts
- Add upload-artifact step to test-deploy-server.yml
- Copy reports from infinito container to runner in dedicated_distro.sh cleanup before volume prune

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 22:32:25 +01:00
kevinveenbirkenbach 8a75959c11 Merge branch 'main' into feature/makefile-wsl2
# Conflicts:
#	.github/workflows/test-development.yml
#	Makefile
#	roles/svc-db-postgres/files/set_postgres_superuser_password.sh
#	scripts/administration/apparmor/restore.sh
#	scripts/administration/apparmor/teardown.sh
#	scripts/dns/setup.sh
#	scripts/install/package.sh
#	scripts/install/venv.sh
#	scripts/tests/development.sh
2026-03-24 20:20:27 +01:00
kevinveenbirkenbach 7c03a6451a feat: Add issue templates for bugs and features
Introduces standardized, form-based issue templates for bug reports and feature requests. This improves the quality and consistency of incoming issues.
2026-03-23 23:59:21 +01:00