@@ -30,73 +30,60 @@ jobs:
30
30
- uses : actions/checkout@v3
31
31
with :
32
32
path : go/src/github.com/timebertt/kubernetes-controller-sharding
33
- - name : Setup Go
34
- uses : actions/setup-go@v4
33
+ - uses : actions/setup-go@v4
35
34
with :
36
35
go-version-file : go/src/github.com/timebertt/kubernetes-controller-sharding/webhosting-operator/go.mod
37
36
cache-dependency-path : go/src/github.com/timebertt/kubernetes-controller-sharding/webhosting-operator/go.sum
38
37
- name : Verify
39
38
run : make -C webhosting-operator verify
40
39
41
- buildAndPush :
40
+ images :
42
41
runs-on : ubuntu-latest
43
- strategy :
44
- matrix :
45
- include :
46
- - name : webhosting-operator
47
- context : webhosting-operator
48
42
steps :
49
43
- uses : actions/checkout@v3
50
- - name : Cache Docker layers
51
- uses : actions/cache@v3
44
+ - uses : actions/setup-go@v4
52
45
with :
53
- path : /tmp/.buildx-cache
54
- key : ${{ runner.os }}-buildx-${{ github.sha }}
55
- restore-keys : |
56
- ${{ runner.os }}-buildx-
57
- - name : Setup Docker buildx
58
- uses : docker/setup-buildx-action@v2
46
+ go-version-file : webhosting-operator/go.mod
47
+ cache-dependency-path : webhosting-operator/go.sum
48
+ -
uses :
ko-build/[email protected]
59
49
with :
60
- install : true
61
- - name : Login to GHCR
62
- if : github.event_name != 'pull_request'
63
- uses : docker/login-action@v2
64
- with :
65
- registry : ghcr.io
66
- username : ${{ github.repository_owner }}
67
- password : ${{ secrets.GITHUB_TOKEN }}
68
-
69
- - uses : docker/metadata-action@v4
50
+ version : v0.14.1
51
+ - name : Prepare image metadata
70
52
id : meta
71
- with :
72
- images : |
73
- ghcr.io/${{ github.repository }}/${{ matrix.name }}
74
- tags : |
75
- type=ref,event=branch
76
- type=ref,event=tag
77
- type=ref,event=pr
78
- type=sha
79
- flavor : |
80
- latest=${{ endsWith(github.ref, github.event.repository.default_branch) }}
53
+ # generate comma-separated tags and labels for image build (similar to docker/metadata-action)
54
+ run : |
55
+ short_ref=${{ github.ref_name }}
56
+ if ${{ github.event_name == 'pull_request' }} ; then
57
+ # for PR events, ref_name is '<pr-number>/merge' but tags may not contain /
58
+ short_ref=pr-${{ github.event.pull_request.number }}
59
+ fi
81
60
82
- - name : Build and push
83
- uses : docker/build-push-action@v4
84
- with :
85
- context : ${{ matrix.context }}
86
- target : ${{ matrix.name }}
87
- platforms : linux/amd64
88
- push : ${{ github.event_name != 'pull_request' }}
89
- tags : ${{ steps.meta.outputs.tags }}
90
- labels : ${{ steps.meta.outputs.labels }}
91
- cache-from : type=local,src=/tmp/.buildx-cache
92
- cache-to : type=local,dest=/tmp/.buildx-cache-new,mode=max
93
- secrets : |
94
- GIT_AUTH_TOKEN=${{ secrets.GITHUB_TOKEN }}
61
+ tags=(
62
+ $short_ref
63
+ sha-$( echo ${{ github.sha }} | head -c7 )
64
+ )
95
65
96
- - name : Move cache
97
- # Temp fix
98
- # https://github.com/docker/build-push-action/issues/252
99
- # https://github.com/moby/buildkit/issues/1896
66
+ if ${{ github.ref_name == 'master' }} ; then
67
+ tags+=( latest )
68
+ fi
69
+
70
+ echo "tags=$(IFS=, ; echo "${tags[*]}")" >> $GITHUB_OUTPUT
71
+
72
+ labels=(
73
+ org.opencontainers.image.created=$( date -u +%Y-%m-%dT%H:%M:%SZ )
74
+ org.opencontainers.image.licenses=Apache-2.0
75
+ org.opencontainers.image.revision=${{ github.sha }}
76
+ org.opencontainers.image.source=https://github.com/${{ github.repository }}
77
+ org.opencontainers.image.url=https://github.com/${{ github.repository }}
78
+ org.opencontainers.image.version=$short_ref
79
+ )
80
+
81
+ echo "labels=$(IFS=, ; echo "${labels[*]}")" >> $GITHUB_OUTPUT
82
+ - name : ko build
100
83
run : |
101
- rm -rf /tmp/.buildx-cache
102
- mv /tmp/.buildx-cache-new /tmp/.buildx-cache
84
+ set -ex
85
+
86
+ cd ./webhosting-operator
87
+ ko build --push=${{ github.event_name != 'pull_request' }} --sbom none --base-import-paths --platform linux/amd64,linux/arm64 \
88
+ --tags "${{ steps.meta.outputs.tags }}" --image-label "${{ steps.meta.outputs.labels }}" \
89
+ ./cmd/webhosting-operator
0 commit comments