-
Notifications
You must be signed in to change notification settings - Fork 3
79 lines (74 loc) · 3.29 KB
/
github-ci.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
name: polygate
env:
PROJECT_NAME: polygate
IMAGE_PREFIX: qxcr.xyz/lowcode
DATE: $(date "+%Y%m%d")
on: [ push, pull_request ]
jobs:
lint:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- run: golint -set_exit_status $(go list ./... | grep -v /vendor/)
test:
runs-on: self-hosted
steps:
- run: go test ./...
- run: go test -cover ./...
build_alpha:
runs-on: self-hosted
needs: [ lint,test ]
if: github.ref == 'refs/heads/alpha'
steps:
- run: go mod tidy
- run: go mod vendor
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: docker build -t ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG .
- run: docker push ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
- run: docker rmi ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
build_test:
runs-on: self-hosted
needs: [ lint,test ]
if: startsWith(github.ref, 'refs/heads/release')
steps:
- run: go mod tidy
- run: go mod vendor
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: docker build -t ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG .
- run: docker push ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
- run: docker rmi ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
build_staging:
runs-on: self-hosted
needs: [ lint,test ]
if: ${{ github.ref_type == 'tag' }}
steps:
- run: echo ${{ github.ref_type }}
- run: go mod tidy
- run: go mod vendor
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: docker build -t ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG .
- run: docker push ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
- run: docker tag ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:latest
- run: docker push ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:latest
- run: docker rmi ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG
deploy_alpha:
runs-on: self-hosted
needs: [ lint,test,build_alpha ]
if: startsWith(github.ref, 'refs/heads/alpha')
steps:
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: helm upgrade ${{ env.PROJECT_NAME }} /root/quanxiang_charts_alpha/${{ env.PROJECT_NAME }} --kubeconfig ~/.kube/config_alpha --set image.tag=$IMAGE_TAG --set image.repo=${{env.IMAGE_PREFIX}} -n lowcode
deploy_test:
runs-on: self-hosted
needs: [ lint,test,build_test ]
if: startsWith(github.ref, 'refs/heads/release')
steps:
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: /opt/upImage.sh ${{ env.IMAGE_PREFIX }}/${{ env.PROJECT_NAME }}:$IMAGE_TAG $GITHUB_REF_NAME
deploy_staging:
runs-on: self-hosted
needs: [ lint,test,build_staging ]
if: ${{ github.ref_type == 'tag' }}
steps:
- run: echo IMAGE_TAG="v${{ env.DATE }}-${GITHUB_SHA::7}" >> $GITHUB_ENV
- run: helm upgrade ${{ env.PROJECT_NAME }} /root/quanxiang_charts_staging/${{ env.PROJECT_NAME }} --kubeconfig ~/.kube/config_staging --set image.tag=$IMAGE_TAG --set image.repo=${{env.IMAGE_PREFIX}} -n lowcode