Deploy Smoke Tests #534
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
| name: Deploy Smoke Tests | |
| # Container smoke test for the unattended (cloud-init) install path. | |
| # Runs when the install/deploy assets change on a branch push or PR, and | |
| # again after a release-tag build finishes uploading its assets — passing the | |
| # tag as an explicit version, so the green result verifies the release | |
| # actually being shipped. That job deliberately runs the script from the | |
| # default branch rather than checking out the tag: workflow_run executes in | |
| # main's cache scope, so executing checked-out code there is a cache-poisoning | |
| # surface (CodeQL actions/cache-poisoning/poisonable-step), and users pipe | |
| # main's install.sh anyway. | |
| # Tag pushes must NOT trigger the unpinned job directly: at that moment | |
| # releases/latest still points at the previous release (#5756), and a `paths` | |
| # filter alone cannot exclude them because a brand-new tag ref has no diff | |
| # base, so it runs on every tag push. | |
| on: | |
| push: | |
| branches: | |
| - "**" | |
| paths: | |
| - "install.sh" | |
| - "deploy/**" | |
| - ".github/workflows/smoke.yml" | |
| pull_request: | |
| paths: | |
| - "install.sh" | |
| - "deploy/**" | |
| - ".github/workflows/smoke.yml" | |
| workflow_run: | |
| workflows: ["Release 3X-UI"] | |
| types: [completed] | |
| permissions: | |
| contents: read | |
| jobs: | |
| noninteractive-install: | |
| if: github.event_name != 'workflow_run' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runner: [ubuntu-latest, ubuntu-24.04-arm] | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Non-interactive install smoke test | |
| run: bash deploy/test/smoke-noninteractive.sh | |
| release-tag-install: | |
| if: >- | |
| github.event_name == 'workflow_run' && | |
| github.event.workflow_run.conclusion == 'success' && | |
| github.event.workflow_run.event == 'push' && | |
| startsWith(github.event.workflow_run.head_branch, 'v') && | |
| contains(github.event.workflow_run.head_branch, '.') | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runner: [ubuntu-latest, ubuntu-24.04-arm] | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Pinned release install smoke test | |
| env: | |
| XUI_SMOKE_VERSION: ${{ github.event.workflow_run.head_branch }} | |
| run: bash deploy/test/smoke-noninteractive.sh "$XUI_SMOKE_VERSION" |