11name : Build
2-
2+ env :
3+ tag_regex_st : ' ^v?[0-9]+\.[0-9]+\.[0-9]+$'
4+ tag_regex_rc : ' ^v?[0-9]+\.[0-9]+\.[0-9]+rc[0-9]+$'
35on :
46 push :
57 tags :
6- - ' *.*.*'
8+ - ' v?[0-9]+.[0-9]+.[0-9]+'
9+ - ' v?[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
710
811jobs :
912
1215 runs-on : ubuntu-latest
1316 steps :
1417
18+ - name : Get the Ref
19+ id : get-ref
20+ uses : ankitvgupta/ref-to-tag-action@master
21+ with :
22+ ref : ${{ github.ref }}
23+ head_ref : ${{ github.head_ref }}
24+
25+ - name : Set Release Flags
26+ id : rel-flags
27+ run : |
28+ echo "is-stable=false" >> $GITHUB_OUTPUT
29+ echo "is-rc=false" >> $GITHUB_OUTPUT
30+ if [[ ${{ steps.get-ref.outputs.tag }} =~ ${{ env.tag_regex_st }} ]]; then
31+ echo "is-stable=true" >> $GITHUB_OUTPUT
32+ echo "Build triggered on stable release"
33+ elif [[ ${{ steps.get-ref.outputs.tag }} =~ ${{ env.tag_regex_rc }} ]]; then
34+ echo "is-rc=true" >> $GITHUB_OUTPUT
35+ echo "Build triggered on release candidate"
36+ fi
37+
1538 - name : Set up Go
1639 uses : actions/setup-go@v2
1740 with :
2447 env :
2548 GOPATH : /home/runner/go
2649 run : |
50+ ${{ steps.rel-flags.outputs.is-rc }} && echo "Building a release candidate ..." || true
51+ ${{ steps.rel-flags.outputs.is-stable }} && echo "Building a stable release ..." || true
2752 sed -i -e "s,_ \"github.com/mattn/go-oci8\",,g" web/server.go
2853 sed -i -e "s,_ \"gopkg.in/rana/ora.v4\",,g" web/server.go
2954 mkdir -p $GOPATH/src/github.com/vkuznet
3257
3358 - name : Create Release
3459 id : create_release
60+ if : fromJSON(steps.rel-flags.outputs.is-stable)
3561 uses : actions/create-release@v1
3662 env :
3763 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -41,24 +67,29 @@ jobs:
4167 draft : false
4268 prerelease : false
4369
70+ - name : Create PreRelease
71+ id : create_prerelease
72+ if : fromJSON(steps.rel-flags.outputs.is-rc)
73+ uses : actions/create-release@v1
74+ env :
75+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
76+ with :
77+ tag_name : ${{ github.ref }}
78+ release_name : Release ${{ github.ref }}
79+ draft : false
80+ prerelease : true
81+
4482 - name : Upload binaries
4583 id : upload-dbs2go
4684 uses : actions/upload-release-asset@v1
4785 env :
4886 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
4987 with :
50- upload_url : ${{ steps.create_release.outputs.upload_url }}
88+ upload_url : ${{ fromJSON( steps.rel-flags.outputs.is-stable) && steps. create_release.outputs.upload_url || steps.create_prerelease .outputs.upload_url }}
5189 asset_path : ./dbs2go
5290 asset_name : dbs2go
5391 asset_content_type : application/octet-stream
5492
55- - name : Get the Ref
56- id : get-ref
57- uses : ankitvgupta/ref-to-tag-action@master
58- with :
59- ref : ${{ github.ref }}
60- head_ref : ${{ github.head_ref }}
61-
6293 - name : Build image
6394 run : |
6495 curl -ksLO https://raw.githubusercontent.com/dmwm/CMSKubernetes/master/docker/dbs2go/Dockerfile
86117 registry : registry.cern.ch
87118 repository : cmsweb/dbs2go
88119 tag_with_ref : true
120+ tags : ${{ fromJSON(steps.rel-flags.outputs.is-stable) && format('{0}, {0}-stable', steps.get-ref.outputs.tag) || steps.get-ref.outputs.tag }}
89121
90122# - name: Login to docker github registry
91123# uses: docker/login-action@v1.6.0
0 commit comments