44 push :
55 tags :
66 - ' v[1-9].[0-9]+.[0-9]+'
7- workflow_dispatch :
8- inputs :
9- stable_tag :
10- description : ' Stable tag to release'
11- required : true
12- type : string
13- promoted_from_beta :
14- description : ' Was this promoted from beta?'
15- required : false
16- type : boolean
17- default : false
187
198jobs :
20- check-beta :
21- name : ' Check Beta Release'
22- runs-on : ' ubuntu-latest'
9+ integration-tests :
10+ name : ' Integration Tests'
11+ strategy :
12+ matrix :
13+ os : [ubuntu-latest, macos-latest]
14+ runs-on : ${{ matrix.os }}
2315 steps :
2416 - name : Checkout code
2517 uses : actions/checkout@v4
2618 with :
27- # https://github.com/marketplace/actions/goreleaser-action#usage
28- # note the fetch-depth: 0 input in Checkout step. It is required for
29- # the changelog to work correctly
3019 fetch-depth : 0
3120
32- - name : Verify beta tag exists
33- run : |
34- if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
35- STABLE_TAG="${{ github.event.inputs.stable_tag }}"
36- echo "Manual trigger for: $STABLE_TAG"
37- if [ "${{ github.event.inputs.promoted_from_beta }}" = "true" ]; then
38- echo "✅ This is a beta promotion, skipping beta check"
39- exit 0
40- fi
41- else
42- STABLE_TAG=${GITHUB_REF#refs/tags/}
43- echo "Tag-triggered release for: $STABLE_TAG"
44- fi
45-
46- BETA_TAG="${STABLE_TAG}-beta"
47- echo "Checking for beta tag: $BETA_TAG"
48-
49- if git tag -l | grep -q "^${BETA_TAG}$"; then
50- echo "✅ Beta tag $BETA_TAG found"
51- else
52- echo "❌ Beta tag $BETA_TAG not found"
53- echo "Please create and test a beta release first: make tag BUMP=<version>"
54- exit 1
55- fi
21+ - name : Install Go
22+ uses : actions/setup-go@v4
23+ with :
24+ go-version : 1.24.x
25+
26+ - name : Run integration tests
27+ run : make test_integration
5628
5729 github-release :
5830 name : ' GitHub Release'
59- needs : check-beta
31+ needs : integration-tests
6032 runs-on : ' ubuntu-latest'
6133 steps :
6234 - name : Checkout code
6335 uses : actions/checkout@v4
6436 with :
37+ # https://github.com/marketplace/actions/goreleaser-action#usage
38+ # note the fetch-depth: 0 input in Checkout step. It is required for
39+ # the changelog to work correctly
6540 fetch-depth : 0
6641
6742 - name : Login to Docker Hub
8661
8762 snapcraft-stable :
8863 name : ' Snapcraft: Stable Release'
89- needs : check-beta
64+ needs : integration-tests
9065 runs-on : ' ubuntu-latest'
9166 steps :
9267 - name : Checkout code
10479 SNAPCRAFT_STORE_CREDENTIALS : ${{ secrets.SNAP_TOKEN }}
10580 with :
10681 snap : ${{ steps.build.outputs.snap }}
107- release : stable
82+ release : stable
0 commit comments