3636 OUT=$?
3737 if [ $OUT -eq 0 ]; then IS_PRERELEASE=true; else IS_PRERELEASE=false; fi
3838 echo "IS_PRERELEASE=${IS_PRERELEASE}" >> "${GITHUB_OUTPUT}"
39+ echo "IS_PRERELEASE=${IS_PRERELEASE}" >> "${GITHUB_ENV}"
40+
3941 - name : Extract Tag Names
4042 id : extract-tag
4143 run : |
4648 echo "DOCKER_TAGS_CLOUD=${{ env.DOCKER_IMAGE }}:${VERSION}-${CLOUD_TAG}" >> "${GITHUB_ENV}"
4749 echo "DOCKER_TAGS_DEBIAN=${{ env.DOCKER_IMAGE }}:${VERSION}-${DEBIAN_TAG}" >> "${GITHUB_ENV}"
4850 echo "DOCKER_TAGS_WOLFI=${{ env.DOCKER_IMAGE }}:${VERSION}-${WOLFI_TAG}" >> "${GITHUB_ENV}"
51+
4952 - name : Add Latest Tag
5053 if : steps.is_prerelease.outputs.IS_PRERELEASE == 'false'
5154 run : |
5457 echo "DOCKER_TAGS_CLOUD=${{ env.DOCKER_IMAGE }}:${CLOUD_TAG}" >> "${GITHUB_ENV}"
5558 echo "DOCKER_TAGS_DEBIAN=${{ env.DOCKER_IMAGE }}:${DEBIAN_TAG}" >> "${GITHUB_ENV}"
5659 echo "DOCKER_TAGS_WOLFI=${{ env.DOCKER_IMAGE }}:${WOLFI_TAG}" >> "${GITHUB_ENV}"
60+
5761 - name : Create Release
5862 id : create_release
5963 uses : softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1
@@ -69,17 +73,86 @@ jobs:
6973 name : Upload Assets to Github w/ goreleaser
7074 runs-on : ubuntu-latest
7175 needs : create_release
76+ permissions :
77+ id-token : write
78+ contents : write
79+ packages : write
80+ env :
81+ GPG_PRIVATE_KEY_FILE : " 0x889B19391F774443-Certify.key"
7282 steps :
7383 - name : Checkout
7484 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
7585 with :
7686 fetch-depth : 0
87+
7788 - name : setup release environment
7889 run : |-
90+ # shellcheck disable=SC2129
7991 echo 'GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}' > .release-env
80- - name : release publish
92+ { echo 'GORELEASER_KEY=${{ secrets.GORELEASER_KEY }}'; \
93+ echo 'AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}'; \
94+ echo 'AWS_S3_BUCKET=${{ secrets.AWS_S3_BUCKET }}'; \
95+ echo 'AWS_S3_REGION=${{ secrets.AWS_S3_REGION }}'; \
96+ echo 'AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}'; \
97+ echo 'GPG_PRIVATE_KEY_FILE=${{ env.GPG_PRIVATE_KEY_FILE }}'; \
98+ echo 'NFPM_PASSPHRASE=${{ secrets.GPG_PRIVATE_KEY_PASSWORD }}'; } >> .release-env
99+
100+ - name : Write GPG private key to file
101+ run : |
102+ echo "${GPG_PRIVATE_KEY}" > "${GPG_PRIVATE_KEY_FILE}"
103+ shell : bash
104+ env :
105+ GPG_PRIVATE_KEY : ${{ secrets.GPG_PRIVATE_KEY }}
106+
107+ - name : Build binaries
81108 run : make release
82109
110+ - name : Authenticate to Google Cloud
111+ if : ${{ needs.create_release.outputs.is_prerelease == 'false' }}
112+ id : gcloud-auth
113+ uses : google-github-actions/auth@v2
114+ with :
115+ token_format : access_token
116+ workload_identity_provider : ${{ secrets.GOOGLE_CLOUD_WORKLOAD_IDENTITY_PROVIDER }}
117+ service_account : ${{ secrets.GOOGLE_CLOUD_GITHUB_SERVICE_ACCOUNT }}
118+
119+ - name : Set up Google Cloud SDK
120+ if : ${{ needs.create_release.outputs.is_prerelease == 'false' }}
121+ uses : google-github-actions/setup-gcloud@v2
122+ with :
123+ project_id : ${{ secrets.GOOGLE_CLOUD_PACKAGES_PROJECT_ID }}
124+
125+ - name : Get Release Date
126+ id : release_date
127+ run : |
128+ # shellcheck disable=SC2129
129+ RELEASE_DATE=$(date -u +"%y-%m-%d")
130+ echo "RELEASE_DATE=${RELEASE_DATE}" >> "${GITHUB_ENV}"
131+ echo 'IS_PRERELEASE=${{ needs.create_release.outputs.is_prerelease }}' >> "${GITHUB_ENV}"
132+
133+ - name : Run GoReleaser Pro
134+ uses :
goreleaser/[email protected] 135+ with :
136+ distribution : goreleaser-pro
137+ version : v2.8.1
138+ args : publish
139+ env :
140+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
141+ AWS_S3_BUCKET : ${{ secrets.AWS_S3_BUCKET }}
142+ AWS_S3_REGION : ${{ secrets.AWS_S3_REGION }}
143+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
144+ GITHUB_TOKEN : ${{ secrets.GORELEASER_PAT }}
145+ GORELEASER_KEY : ${{ secrets.GORELEASER_KEY }}
146+ NFPM_PASSPHRASE : ${{ secrets.GPG_PRIVATE_KEY_PASSWORD }}
147+ RELEASE_DATE : ${{ env.RELEASE_DATE }}
148+ IS_PRERELEASE : ${{ needs.create_release.outputs.is_prerelease }}
149+
150+ - name : Shred and remove GPG private key
151+ run : |
152+ shred -zun 3 "${GPG_PRIVATE_KEY_FILE}"
153+ shred -zun 3 .release-env
154+ shell : bash
155+
83156 build_upload_docker :
84157 name : Build & Upload Docker Image
85158 needs : create_release
0 commit comments