diff --git a/.github/workflows/publish-image.yml b/.github/workflows/publish-image.yml index cc2393a..f3380b3 100644 --- a/.github/workflows/publish-image.yml +++ b/.github/workflows/publish-image.yml @@ -25,7 +25,33 @@ permissions: packages: write jobs: + # The `.runtime-version` file is the push-mode cascade signal post- + # 2026-05-06: when molecule-core/publish-runtime.yml ships a new + # version to PyPI, it does NOT call repository_dispatch (Gitea 1.22.6 + # has no such endpoint — empirically verified molecule-core#20). + # Instead it git-pushes an updated `.runtime-version` to each template, + # which trips this workflow's `on: push: branches: [main]` trigger. + # This job reads that file and forwards the version to the reusable + # build workflow. + resolve-version: + runs-on: ubuntu-latest + timeout-minutes: 2 + outputs: + version: ${{ steps.read.outputs.version }} + steps: + - uses: actions/checkout@v4 + - id: read + run: | + if [ -f .runtime-version ]; then + v="$(head -n1 .runtime-version | tr -d '[:space:]')" + echo "version=$v" >> "$GITHUB_OUTPUT" + echo "resolved runtime version: $v" + else + echo "no .runtime-version file present — falling through to Dockerfile default" + fi + publish: + needs: resolve-version uses: molecule-ai/molecule-ci/.github/workflows/publish-template-image.yml@main secrets: inherit with: @@ -33,4 +59,4 @@ jobs: # version PyPI just published. Forwarded as a docker --build-arg # so the cache key changes per-version and pip install resolves # freshly. Empty on push/PR — falls back to requirements.txt pin. - runtime_version: ${{ github.event.client_payload.runtime_version || inputs.runtime_version || '' }} + runtime_version: ${{ github.event.client_payload.runtime_version || inputs.runtime_version || needs.resolve-version.outputs.version || '' }} diff --git a/.runtime-version b/.runtime-version new file mode 100644 index 0000000..aab9b57 --- /dev/null +++ b/.runtime-version @@ -0,0 +1 @@ +0.1.129