chore(deps): update github-actions (non-major) (#1096) #95
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Post-merge E2E — common layer validation | |
| # | |
| # Runs AFTER a merge to main (not on PRs). PRs get validate/build plus the | |
| # advisory composed-image gate in pr-e2e.yml. | |
| # | |
| # Uses the local run-testsuite wrapper with the `common` suite, which validates | |
| # that the files shipped by this repo (dconf defaults, ujust, setup scripts, | |
| # desktop entries, shell config) are present and functional in the downstream | |
| # images. | |
| # | |
| # The `common` suite runs in SSH mode from the GHA runner — no full GNOME | |
| # session needed, so jobs complete in ~15 min vs ~60 min for GUI suites. | |
| name: E2E | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "*.md" | |
| - "**.md" | |
| - "docs/**" | |
| - "AGENTS.md" | |
| - "LICENSE" | |
| - ".gitignore" | |
| - ".gitattributes" | |
| - ".github/workflows/**" | |
| workflow_dispatch: | |
| jobs: | |
| e2e: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Bluefin LTS is deliberately absent. Its common suite fails on every | |
| # run (bootupd missing, bootloader-update.service failing, | |
| # LockLayering blocking rpm-ostree) — see | |
| # https://github.com/projectbluefin/bluefin-lts/issues/492. | |
| # | |
| # A permanently red advisory check teaches everyone to ignore it, and | |
| # GitHub does not allow `continue-on-error` on a job that calls a | |
| # reusable workflow, so the entry cannot simply be soft-failed here. | |
| # | |
| # LTS is still covered: promotion-candidate-e2e.yml runs `smoke,common` | |
| # against bluefin:lts-testing every Tuesday. Restore this entry once | |
| # bluefin-lts#492 is fixed. | |
| - name: Bluefin Stable | |
| image: ghcr.io/projectbluefin/bluefin:testing | |
| suites: common | |
| - name: Dakota | |
| image: ghcr.io/projectbluefin/dakota:testing | |
| suites: common | |
| name: "E2E — ${{ matrix.name }}" | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/run-testsuite.yml | |
| with: | |
| image: ${{ matrix.image }} | |
| suites: ${{ matrix.suites }} | |
| # This workflow is advisory — it is not a required check and does not gate | |
| # publication (common:latest is already pushed by the time it runs). Without | |
| # a report, a red run is only visible to whoever happens to open the Actions | |
| # tab; it went unnoticed for four days in July 2026. This reports, it does | |
| # not block. | |
| report-failure: | |
| name: "Report E2E failure" | |
| needs: [e2e] | |
| if: failure() | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - name: Open or update the tracking issue | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| REPO: ${{ github.repository }} | |
| SHA: ${{ github.sha }} | |
| run: | | |
| set -euo pipefail | |
| TITLE="ci: post-merge E2E is failing on main" | |
| # Post-merge runs are frequent, so reuse one tracking issue rather | |
| # than filing a new one per merge. | |
| existing=$(gh issue list --repo "$REPO" --state open --limit 100 \ | |
| --json number,title \ | |
| | jq -r --arg t "$TITLE" '[.[] | select(.title == $t)][0].number // empty') | |
| if [ -n "$existing" ]; then | |
| gh issue comment "$existing" --repo "$REPO" \ | |
| --body "Still failing on \`${SHA:0:7}\` — ${RUN_URL}" | |
| echo "Updated existing issue #${existing}" | |
| exit 0 | |
| fi | |
| gh issue create --repo "$REPO" --title "$TITLE" --label "1-triage" --body \ | |
| "Post-merge E2E failed on \`${SHA:0:7}\`. | |
| Run: ${RUN_URL} | |
| This workflow is **advisory** — it is not a required check and does not | |
| gate publication. \`common:latest\` was already pushed before this ran, | |
| so a failure here means a regression is already shipped, not that a | |
| release was blocked. | |
| It exercises the downstream \`*-testing\` images, so the cause may be in | |
| a downstream base image rather than in \`system_files/\`. Check which | |
| matrix entry failed before assuming otherwise. | |
| This issue is reused for subsequent failures. Close it once the run is | |
| green again." |