88jobs :
99 prepare-release :
1010 name : Prepare release
11- if : ${{ github.event.label.name != 'no-release' }}
1211 runs-on : ubuntu-latest
1312
1413 env :
15- docker_server : docker .io
16- docker_org : ntlawrence
14+ docker_server : quay .io
15+ docker_org : alvearie
1716 docker_repo : nlp-insights
1817
1918 steps :
@@ -37,15 +36,15 @@ jobs:
3736 if [[ "${{ github.event.label.name }}" =~ '^(release-major|release-minor|release-patch)$' ]]; then
3837 RELEASE="${{ github.event.label.name }}"
3938 elif [ -z "${{ github.event.label.name }}" ]; then
40- &> 2 echo "There was no label (valid values are release-major, release-minor, or release-patch), using release-patch"
39+ >& 2 echo "There was no label (valid values are release-major, release-minor, or release-patch), using release-patch"
4140 RELEASE=release-patch
4241 else
43- &> 2 echo "The pull request must have a label in (release-major, release-minor, or release-patch)."
42+ >& 2 echo "The pull request must have a label in (release-major, release-minor, or release-patch)."
4443 exit 1
4544 fi
4645
4746 echo "VERSION=$(calculate_tag ${{ env.docker_repo }} ${{ env.docker_server }} ${{ env.docker_org }} ${RELEASE} )" >> $GITHUB_ENV
48- &> 2 echo "${VERSION} was assigned as a release tag"
47+ >& 2 echo "${VERSION} was assigned as a release tag"
4948 - name : Update release files
5049 run : |
5150 UPDATES=0
5554 --docker_org=${{ env.docker_org }} \
5655 --docker_repo=${{ env.docker_repo}} || UPDATES=$?
5756
58- &> 2 echo "${UPDATES} changes were made to update the release to ${{ env.VERSION }}"
57+ >& 2 echo "${UPDATES} changes were made to update the release to ${{ env.VERSION }}"
5958
6059 - name : Unit Test
6160 run : ./gradlew test
@@ -72,11 +71,27 @@ jobs:
7271
7372 - name : Push Docker Image
7473 run : |
75- ./gradlew checkSource dockerPush -PdockerUser=${{ env.docker_server }}/${{ env.docker_org }}
74+ ./gradlew dockerPush -PdockerUser=${{ env.docker_server }}/${{ env.docker_org }}
7675 - name : Commit release updates to git
7776 run : |
7877 git config user.name ${{ github.actor }}
7978 git config user.email "${{ github.actor }}@users.noreply.github.com"
8079 git add -A
8180 git commit --signoff -m "Update to version ${{ env.VERSION }}" || true
8281 git push || true #Ignore errors in case no files have changed
82+
83+ # The commit that we just pushed will not trigger the prepare release action (avoids recursion)
84+ # So we need to explicitly tag the action complete for the commit that we
85+ # just pushed. This is the last step in the flow.
86+ # See: https://docs.github.com/en/rest/reference/commits#create-a-commit-status
87+ - name : Signal Completion
88+ run : |
89+ set -x
90+ BUILD_URL="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
91+ sha=$(git rev-parse HEAD)
92+ obj="{\"state\" : \"success\", \"context\" : \"Prepare release\", \"target_url\": \"${BUILD_URL}\" }"
93+
94+ curl -X POST "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/statuses/${sha}" \
95+ -H "Authorization : Bearer ${{ secrets.GITHUB_TOKEN }}" \
96+ -H "Accept : application/vnd.github.v3+json" \
97+ -d "${obj}"
0 commit comments