1
+ name : Push
2
+
3
+ on :
4
+ push :
5
+ branches :
6
+ - master
7
+
8
+ env :
9
+ DOCKER_FILE_PATH : Dockerfile
10
+ GOLANG_VERSION : 1.14
11
+ OPERATOR_SDK_VERSION : " 0.19.0"
12
+ KUSTOMIZE_VERSION : " 3.5.4"
13
+
14
+ jobs :
15
+ build :
16
+ name : Build
17
+ if : " ! contains(toJSON(github.event.commits.*.message), '[skip-ci]')"
18
+ runs-on : ubuntu-latest
19
+
20
+ steps :
21
+ - name : Check out code
22
+ uses : actions/checkout@v2
23
+
24
+ - name : Set up Go
25
+ id : go
26
+ uses : actions/setup-go@v2
27
+ with :
28
+ go-version : ${{ env.GOLANG_VERSION }}
29
+
30
+ - name : Lint
31
+ run : |
32
+ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.26.0
33
+ golangci-lint run --timeout=10m ./...
34
+
35
+ # - name: Test
36
+ # run: GOFLAGS="-count=1" go test -v ./... -coverprofile cover.out
37
+
38
+ - name : Generate Tag
39
+ id : generate_tag
40
+ uses :
anothrNick/[email protected]
41
+ env :
42
+ GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
43
+ WITH_V : true
44
+ DEFAULT_BUMP : patch
45
+ DRY_RUN : true
46
+
47
+ - name : Build and push Docker images
48
+ uses : docker/build-push-action@v1
49
+ with :
50
+ username : ${{ secrets.STAKATER_NEXUS_USERNAME }}
51
+ password : ${{ secrets.STAKATER_NEXUS_PASSWORD }}
52
+ registry : ${{ secrets.STAKATER_NEXUS_REGISTRY }}
53
+ repository : ${{ env.GITHUB_REPOSITORY }}
54
+ add_git_labels : true
55
+ dockerfile : ${{ env.DOCKER_FILE_PATH }}
56
+ tags : ${{ steps.generate_tag.outputs.new_tag }}
57
+
58
+
59
+ # #############################
60
+ # # Add steps to generate required artifacts for a release here(helm chart, operator manifest etc.)
61
+ # #############################
62
+
63
+ # Generate tag for operator without "v"
64
+ - name : Generate Operator Tag
65
+ id : generate_operator_tag
66
+ uses :
anothrNick/[email protected]
67
+ env :
68
+ GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
69
+ WITH_V : false
70
+ DEFAULT_BUMP : patch
71
+ DRY_RUN : true
72
+
73
+ # Install operator-sdk
74
+ - name : Install operator-sdk
75
+ env :
76
+ OPERATOR_SDK_VERSION : ${{ env.OPERATOR_SDK_VERSION }}
77
+ run : |
78
+ curl -fL -o /tmp/operator-sdk "https://github.com/operator-framework/operator-sdk/releases/download/v${OPERATOR_SDK_VERSION}/operator-sdk-v${OPERATOR_SDK_VERSION}-x86_64-linux-gnu"
79
+ sudo install /tmp/operator-sdk /usr/local/bin && rm -f /tmp/operator-sdk
80
+ operator-sdk version
81
+ operator-sdk version | grep -q "${OPERATOR_SDK_VERSION}"
82
+
83
+ # Install kustomize
84
+ - uses : imranismail/setup-kustomize@v1
85
+ with :
86
+ kustomize-version : ${{ env.KUSTOMIZE_VERSION }}
87
+
88
+ - name : Generate Bundle
89
+ env :
90
+ VERSION : ${{ steps.generate_operator_tag.outputs.new_tag }}
91
+ run : make bundle
92
+
93
+ - name : Generate Package Manifests
94
+ env :
95
+ VERSION : ${{ steps.generate_operator_tag.outputs.new_tag }}
96
+ run : make packagemanifests
97
+
98
+ # Commit back changes
99
+ - uses : stefanzweifel/git-auto-commit-action@v4
100
+ with :
101
+ commit_message : " [skip-ci] Update artifacts"
102
+ commit_user_name : stakater-user
103
+ commit_user_email :
[email protected]
104
+
105
+ - name : Push Latest Tag
106
+ uses :
anothrNick/[email protected]
107
+ env :
108
+ GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
109
+ WITH_V : true
110
+ DEFAULT_BUMP : patch
111
+
112
+ - name : Notify Slack
113
+ uses : 8398a7/action-slack@v3
114
+ if : always() # Pick up events even if the job fails or is canceled.
115
+ with :
116
+ status : ${{ job.status }}
117
+ fields : repo,author,action,eventName,ref,workflow
118
+ env :
119
+ GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
120
+ SLACK_WEBHOOK_URL : ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }}
0 commit comments