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 — pinned to # that tag, so the green result verifies the release actually being shipped. # 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 with: ref: ${{ github.event.workflow_run.head_sha }} - 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"