11name : Docker Release
22
33on :
4- # Trigger the workflow on the new 'v*' tag created
54 push :
6- branches : [main, feature/*]
7- tags :
8- - " v*"
9- workflow_dispatch :
5+ branches :
6+ - main
107
118jobs :
12- docker :
9+ build_and_release :
1310 runs-on : ubuntu-latest
11+
12+ outputs :
13+ # Whether a new release was published (true or false)
14+ new_release_published : ${{ steps.semantic.outputs.new_release_published }}
15+ # Version of the new release. (e.g. 1.3.0)
16+ new_release_version : ${{ steps.semantic.outputs.new_release_version }}
17+ # Major version of the new release. (e.g. 1)
18+ new_release_major_version : ${{ steps.semantic.outputs.new_release_major_version }}
19+ # Minor version of the new release. (e.g. 3)
20+ new_release_minor_version : ${{ steps.semantic.outputs.new_release_minor_version }}
21+ # Patch version of the new release. (e.g. 0)
22+ new_release_patch_version : ${{ steps.semantic.outputs.new_release_patch_version }}
23+ # The distribution channel on which the last release was initially made available (undefined for the default distribution channel).
24+ new_release_channel : ${{ steps.semantic.outputs.new_release_channel }}
25+ # The release notes for the new release.
26+ new_release_notes : ${{ steps.semantic.outputs.new_release_notes }}
27+
1428 steps :
1529 - uses : actions/checkout@v2
16-
1730 - uses : actions/setup-go@v2
1831 with :
1932 go-version : " 1.16"
2033 - run : cd server && go test -v --race ./...
34+ - uses : cycjimmy/semantic-release-action@v2
35+ id : semantic
36+ with :
37+ semantic_version : 15.13.28
38+ env :
39+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
2140
41+ docker :
42+ runs-on : ubuntu-latest
43+
44+ if : ${{ needs.build_and_release.new_release_published }}
45+
46+ needs :
47+ - build_and_release
48+ steps :
49+ - uses : actions/checkout@v2
2250 - name : Docker meta
2351 id : docker_meta
2452 uses : docker/metadata-action@v3
2553 with :
2654 images : ghcr.io/codingpot/pr12er
2755 tags : |
28- type=semver,pattern={{version}}
29- type=sha
56+ # <image>:1
57+ type=raw,value=${{ needs.build_and_release.outputs.new_release_major_version }}
58+ # <image>:1.2
59+ type=raw,value=${{ needs.build_and_release.outputs.new_release_major_version }}.${{ needs.build_and_release.outputs.new_release_minor_version }}
60+ # <image>:1.2.3
61+ type=raw,value=${{ needs.build_and_release.outputs.new_release_version }}
62+ # <image>:latest
63+ type=raw,value=latest
3064
3165 - name : Set up QEMU
3266 uses : docker/setup-qemu-action@v1
3367 with :
34- platforms : linux/amd64
68+ platforms : all
3569
3670 - name : Set up Docker Buildx
3771 uses : docker/setup-buildx-action@v1
@@ -41,14 +75,14 @@ jobs:
4175 with :
4276 registry : ghcr.io
4377 username : ${{ github.repository_owner }}
44- password : ${{ secrets.GHCR_IO_TOKEN }}
78+ password : ${{ secrets.GITHUB_TOKEN }}
4579
4680 - name : Build and push
4781 uses : docker/build-push-action@v2
4882 with :
4983 context : ./server
5084 file : ./server/deploy/Dockerfile
51- platforms : linux/amd64
85+ platforms : linux/amd64,linux/arm64
5286 push : true
5387 tags : ${{ steps.docker_meta.outputs.tags }}
54- labels : ${{ steps.docker_meta.outputs.labels }}
88+ labels : ${{ steps.docker_meta.outputs.labels }}
0 commit comments