88 - main
99 pull_request :
1010
11- env :
12- GORELEASER_VER : " v2.3.2"
13-
1411jobs :
1512 release :
16- env :
17- flags : " "
1813 runs-on : ubuntu-latest
1914 permissions :
2015 contents : read
@@ -24,51 +19,42 @@ jobs:
2419 id-token : write
2520
2621 steps :
27- - name : Parse semver string
28- id : semver_parser
29- uses : booxmedialtd/ws -action-parse-semver@v1
22+ - name : Docker meta
23+ id : meta
24+ uses : docker/metadata -action@v5
3025 with :
31- input_string : ${{ (startsWith(github.ref, 'refs/tags/v') && github.ref) || 'refs/tags/v0.0.0' }}
32- version_extractor_regex : ' \/v(.*)$'
33-
34- - if : ${{ !startsWith(github.ref, 'refs/tags/v') }}
35- run : echo "flags=--snapshot" >> $GITHUB_ENV
36-
37- - name : Checkout repository
38- uses : actions/checkout@v4
39- with :
40- fetch-depth : 0 # It is required for GoReleaser to work properly
41-
42- - name : Install modules
43- run : go mod tidy
44-
45- - name : check git status
46- run : git --no-pager diff --exit-code
47- # Set up BuildKit Docker container builder to be able to build
48- # multi-platform images and export cache
49- # https://github.com/docker/setup-buildx-action
50- - name : Set up Docker Buildx
51- uses : docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
52-
53- # Login against a Docker registry except on PR
54- # https://github.com/docker/login-action
55- - name : Login to Docker hub
26+ # list of Docker images to use as base name for tags
27+ images : |
28+ netbirdio/kubernetes-operator
29+ # generate Docker tags based on the following events/attributes
30+ tags : |
31+ type=ref,event=pr
32+ type=ref,event=branch
33+ type=semver,pattern={{version}}
34+
35+ - name : Login to Docker Hub
5636 if : github.repository == github.event.pull_request.head.repo.full_name || !github.head_ref
57- uses : docker/login-action@v1
37+ uses : docker/login-action@v3
5838 with :
5939 username : ${{ secrets.DOCKER_USER }}
6040 password : ${{ secrets.DOCKER_TOKEN }}
6141
62- - name : Install OS build dependencies
63- run : sudo apt update && sudo apt install -y -q gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
42+ - name : Set up QEMU
43+ uses : docker/setup-qemu-action@v3
44+
45+ - name : Set up Docker Buildx
46+ uses : docker/setup-buildx-action@v3
6447
65- - name : Install goversioninfo
66- run : go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@233067e
67-
68- - name : Run GoReleaser
69- uses : goreleaser/goreleaser-action@v4
48+ - name : Build and push
49+ uses : docker/build-push-action@v6
7050 with :
71- version : ${{ env.GORELEASER_VER }}
72- args : release --clean ${{ env.flags }}
73- env :
74- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
51+ platforms : linux/amd64,linux/arm64
52+ push : true
53+ tags : ${{ steps.meta.outputs.tags }}
54+ labels : |
55+ "org.opencontainers.image.created={{.Date}}"
56+ "org.opencontainers.image.title={{.ProjectName}}"
57+ "org.opencontainers.image.version={{.Version}}"
58+ "org.opencontainers.image.revision={{.FullCommit}}"
59+ "org.opencontainers.image.version={{.Version}}"
60+
0 commit comments