1
1
name : ci-systemd-release
2
2
3
3
on :
4
+ workflow_dispatch :
5
+ inputs :
6
+ tag :
7
+ description : " Release tag which has to be updated"
8
+ type : " string"
9
+ required : true
4
10
push :
5
11
tags :
6
12
- " *"
7
13
14
+ # Declare default permissions as read only.
15
+ permissions : read-all
16
+
8
17
jobs :
9
18
goreleaser :
10
19
runs-on : ubuntu-20.04
@@ -16,34 +25,70 @@ jobs:
16
25
- uses : actions/checkout@v3
17
26
with :
18
27
submodules : true
28
+ fetch-depth : 0
19
29
20
30
- uses : actions/setup-go@v5
21
31
with :
22
32
go-version-file : ' KubeArmor/go.mod'
23
-
24
33
25
34
- name : Install the latest LLVM toolchain
26
35
run : ./.github/workflows/install-llvm.sh
27
36
28
37
- name : Compile libbpf
29
38
run : ./.github/workflows/install-libbpf.sh
39
+
30
40
- name : Install Cosign
31
41
uses : sigstore/cosign-installer@main
32
42
33
43
- name : Install karmor
34
44
run : curl -sfL https://raw.githubusercontent.com/kubearmor/kubearmor-client/main/install.sh | sudo sh -s -- -b .
35
45
working-directory : KubeArmor
36
-
46
+
37
47
- name : Build KubeArmor object files
38
- run : make
48
+ run : make
39
49
working-directory : KubeArmor/BPF
40
-
50
+
51
+ - name : Log in to Docker Hub
52
+ uses : docker/login-action@v2
53
+ with :
54
+ username : ${{ secrets.DOCKER_USERNAME }}
55
+ password : ${{ secrets.DOCKER_AUTHTOK }}
56
+
57
+ - name : Get release tag
58
+ id : vars
59
+ run : |
60
+ cp KubeArmor/.goreleaser.yaml /tmp/.goreleaser.yaml
61
+ if [[ ${{ github.event_name }} == "workflow_dispatch" ]]; then
62
+ # checkout branch but use goreleaser config from latest
63
+ echo "Checking out tag: ${{ inputs.tag }}"
64
+ git checkout ${{ inputs.tag }}
65
+ echo "GORELEASER_CURRENT_TAG=${{ inputs.tag }}" >> $GITHUB_OUTPUT
66
+
67
+ REF=${{ inputs.tag }}
68
+ echo "tag=${REF#v}" >> $GITHUB_OUTPUT
69
+ else
70
+ REF=${GITHUB_REF#refs/*/}
71
+ echo "tag=${REF#v}" >> $GITHUB_OUTPUT
72
+ fi
73
+
41
74
- name : Run GoReleaser
42
75
uses : goreleaser/goreleaser-action@v5
43
76
with :
44
77
distribution : goreleaser
45
78
version : v1.25.0
46
- args : release --clean
79
+ args : release --config=/tmp/.goreleaser.yaml
47
80
workdir : KubeArmor
48
81
env :
49
82
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
83
+ GORELEASER_CURRENT_TAG : ${{ steps.vars.outputs.GORELEASER_CURRENT_TAG }}
84
+
85
+ - name : Setup ORAS
86
+ uses : oras-project/setup-oras@v1
87
+ with :
88
+ version : 1.0.0
89
+
90
+ - name : Publish release artifacts to Dockerhub
91
+ working-directory : KubeArmor/dist
92
+ run : |
93
+ oras push docker.io/kubearmor/kubearmor-systemd:${{ steps.vars.outputs.tag }}_linux-amd64 kubearmor_${{ steps.vars.outputs.tag }}_linux-amd64.tar.gz
94
+ oras push docker.io/kubearmor/kubearmor-systemd:${{ steps.vars.outputs.tag }}_linux-arm64 kubearmor_${{ steps.vars.outputs.tag }}_linux-arm64.tar.gz
0 commit comments