smoke.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. name: Deploy Smoke Tests
  2. # Container smoke test for the unattended (cloud-init) install path.
  3. # Runs when the install/deploy assets change on a branch push or PR, and
  4. # again after a release-tag build finishes uploading its assets — pinned to
  5. # that tag, so the green result verifies the release actually being shipped.
  6. # Tag pushes must NOT trigger the unpinned job directly: at that moment
  7. # releases/latest still points at the previous release (#5756), and a `paths`
  8. # filter alone cannot exclude them because a brand-new tag ref has no diff
  9. # base, so it runs on every tag push.
  10. on:
  11. push:
  12. branches:
  13. - "**"
  14. paths:
  15. - "install.sh"
  16. - "deploy/**"
  17. - ".github/workflows/smoke.yml"
  18. pull_request:
  19. paths:
  20. - "install.sh"
  21. - "deploy/**"
  22. - ".github/workflows/smoke.yml"
  23. workflow_run:
  24. workflows: ["Release 3X-UI"]
  25. types: [completed]
  26. permissions:
  27. contents: read
  28. jobs:
  29. noninteractive-install:
  30. if: github.event_name != 'workflow_run'
  31. strategy:
  32. fail-fast: false
  33. matrix:
  34. runner: [ubuntu-latest, ubuntu-24.04-arm]
  35. runs-on: ${{ matrix.runner }}
  36. timeout-minutes: 15
  37. steps:
  38. - uses: actions/checkout@v7
  39. - name: Non-interactive install smoke test
  40. run: bash deploy/test/smoke-noninteractive.sh
  41. release-tag-install:
  42. if: >-
  43. github.event_name == 'workflow_run' &&
  44. github.event.workflow_run.conclusion == 'success' &&
  45. github.event.workflow_run.event == 'push' &&
  46. startsWith(github.event.workflow_run.head_branch, 'v') &&
  47. contains(github.event.workflow_run.head_branch, '.')
  48. strategy:
  49. fail-fast: false
  50. matrix:
  51. runner: [ubuntu-latest, ubuntu-24.04-arm]
  52. runs-on: ${{ matrix.runner }}
  53. timeout-minutes: 15
  54. steps:
  55. - uses: actions/checkout@v7
  56. with:
  57. ref: ${{ github.event.workflow_run.head_sha }}
  58. - name: Pinned release install smoke test
  59. env:
  60. XUI_SMOKE_VERSION: ${{ github.event.workflow_run.head_branch }}
  61. run: bash deploy/test/smoke-noninteractive.sh "$XUI_SMOKE_VERSION"