DEVX-150: feat(setup): mirror Ansible collections from Gitea registry #244

Closed
gitea-admin wants to merge 28 commits from DEVX-152-molecule-destroy-on-failure into master
First-time contributor

Add _try_gitea_mirror_install() to download Ansible collection tarballs from the Gitea package registry with token auth, then install offline. Falls back to galaxy.ansible.com if no token or mirror download fails.

This prevents transient galaxy.ansible.com timeouts that were causing CI molecule-tests to fail.

Depends on: ansible collection tarballs uploaded to Gitea package registry (ansible-collections generic package).

Add _try_gitea_mirror_install() to download Ansible collection tarballs from the Gitea package registry with token auth, then install offline. Falls back to galaxy.ansible.com if no token or mirror download fails. This prevents transient galaxy.ansible.com timeouts that were causing CI molecule-tests to fail. Depends on: ansible collection tarballs uploaded to Gitea package registry (ansible-collections generic package).
gitea-admin added 23 commits 2026-08-08 20:43:47 +00:00
DEVX-145: feat: extract reusable components from infra and grm into devx
Post-merge / detect-and-configure (push) Successful in 12s
Post-merge / release-and-maintain (push) Successful in 1m19s
9f1bdc4cf1
Co-authored-by: oblachno Admin <admin@oblachno.oblachno.fyi>
Co-authored-by: oblachno Admin <admin@oblachno.oblachno.fyi>
Co-authored-by: oblachno Admin <admin@oblachno.oblachno.fyi>
When a molecule test fails or is interrupted (cross-runner cancellation
or KeyboardInterrupt), the test containers are left running because the
final 'destroy' step in the molecule test sequence never executes.
These stale containers accumulate on runner hosts, consuming disk and
memory, causing CI test speed variance.

Added molecule destroy cleanup in all three exit paths:
- Test failure (non-zero exit code)
- Cross-runner cancellation (failed_event)
- KeyboardInterrupt

The destroy command uses the same cwd and env as the test run, with a
120s timeout and suppressed errors (best-effort cleanup).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
feat(setup): mirror Ansible collections from Gitea registry with auth
CI / validate (pull_request) Failing after 22s
CI / auto-merge (pull_request) Skipped
b9d660902b
ansible-galaxy type: url doesn't support auth headers, and Gitea's
package API requires authentication even for public orgs. Add
_try_gitea_mirror_install() which downloads type: url tarballs from
the Gitea package registry with token auth, then installs from local
files with --offline. Falls back to direct galaxy.ansible.com install
if no token is available or mirror download fails.

This prevents transient "read operation timed out" failures from
galaxy.ansible.com that were causing CI molecule-tests to fail.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
kireto added 1 commit 2026-08-08 20:47:41 +00:00
fix(i18n): add missing translation key for molecule destroy cleanup
CI / validate (pull_request) Failing after 54s
CI / auto-merge (pull_request) Skipped
6f1220a4f1
Add 'Cleaning up: running molecule destroy for {scenario}' to
translations.json with proper translations for all 6 languages
(bg, de, en, pl, ru, zh). This key was introduced in d8919ae but
the translation entry was missing, causing CI lint to fail.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gitea-admin changed title from DEVX-153: feat(setup): mirror Ansible collections from Gitea registry to DEVX-150: feat(setup): mirror Ansible collections from Gitea registry 2026-08-08 20:50:42 +00:00
kireto added 1 commit 2026-08-08 21:02:57 +00:00
fix(api): use raw token for Vikunja Authorization header
CI / validate (pull_request) Failing after 1m11s
CI / auto-merge (pull_request) Skipped
60f33ce1dc
Vikunja's API expects the raw API token in the Authorization header
without the "Bearer" prefix. Using "Bearer <token>" causes HTTP 401
errors, which broke the auto-merge preconditions check in CI.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
kireto added 1 commit 2026-08-08 21:05:55 +00:00
revert: keep Bearer prefix for Vikunja Authorization header
CI / validate (pull_request) Failing after 57s
CI / auto-merge (pull_request) Skipped
9893f71fad
The Bearer prefix is correct for Vikunja's API. The CI 401 error is
caused by an expired VIKUNJA_TOKEN secret, not the header format.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
kireto added 1 commit 2026-08-08 21:11:44 +00:00
chore: trigger CI rerun with updated VIKUNJA_TOKEN
CI / validate (pull_request) Failing after 59s
CI / auto-merge (pull_request) Skipped
0f18a69a6f
kireto added 1 commit 2026-08-08 21:13:38 +00:00
chore: trigger CI with updated VIKUNJA_TOKEN secret
CI / validate (pull_request) Failing after 48s
CI / auto-merge (pull_request) Skipped
40d4a3f477
kireto changed title from DEVX-150: feat(setup): mirror Ansible collections from Gitea registry to DEVX-152: feat(setup): mirror Ansible collections from Gitea registry 2026-08-08 21:15:40 +00:00
emil changed title from DEVX-152: feat(setup): mirror Ansible collections from Gitea registry to DEVX-150: feat(setup): mirror Ansible collections from Gitea registry 2026-08-08 21:15:56 +00:00
emil closed this pull request 2026-08-08 21:16:20 +00:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.