4646 FORMULA : cbmc-starter-kit
4747 TAP : aws/tap
4848 BOT_USER : cbmc-starter-kit-release-ci
49- BOT_EMAIL : ${{ secrets.BOT_EMAIL }}
50- BOT_TOKEN : ${{ secrets.RELEASE_CI_ACCESS_TOKEN }}
5149 RELEASE_TAG : ${GITHUB_REF/refs\/tags\/} # GITHUB_REF = refs/tags/STRING-MAJOR.MINOR
5250 VERSION : $(echo $GITHUB_REF | cut -d "/" -f 3 | cut -d "-" -f 2)
53- FORK_REPO :
https://[email protected] /$BOT_USER/homebrew-$(echo $TAP |cut -d "/" -f 2).git 51+ AWS_ROLE : arn:aws:iam::${{secrets.AWS_ACCOUNT}}:role/PublisherTokenReader
52+ AWS_REGION : us-west-2
5453
5554jobs :
5655 homebrew-pr :
5756 name : Homebrew Bump Formula PR
5857 runs-on : macos-latest
58+ permissions :
59+ id-token : write
5960 steps :
61+ - name : Authenticate GitHub workflow to AWS
62+ uses : aws-actions/configure-aws-credentials@v4
63+ with :
64+ role-to-assume : ${{ env.AWS_ROLE }}
65+ aws-region : ${{ env.AWS_REGION }}
66+
67+ - name : Fetch secrets
68+ run : |
69+ echo "BOT_EMAIL=$(aws secretsmanager get-secret-value --secret-id BOT_EMAIL | jq -r '.SecretString')" >> $GITHUB_ENV
70+ echo "HOMEBREW_GITHUB_API_TOKEN=$(aws secretsmanager get-secret-value --secret-id RELEASE_CI_ACCESS_TOKEN | jq -r '.SecretString')" >> $GITHUB_ENV
71+
6072 - name : Configure git user name and email
6173 run : |
6274 git config --global user.name ${{ env.BOT_USER }}
@@ -66,21 +78,33 @@ jobs:
6678 run : |
6779 brew tap ${{ env.TAP }}
6880 brew update-reset
69- brew bump-formula-pr --tag "${{ env.RELEASE_TAG }}" --revision "$GITHUB_SHA" ${{ env.TAP }}/${{ env.FORMULA }} --force
70- env :
71- HOMEBREW_GITHUB_API_TOKEN : ${{ env.BOT_TOKEN }}
81+ brew bump-formula-pr --tag "${{ env.RELEASE_TAG }}" --revision "${{ github.sha }}" ${{ env.TAP }}/${{ env.FORMULA }} --force
7282
7383 build-bottle :
7484 needs : homebrew-pr
7585 strategy :
7686 matrix :
7787 os : [ubuntu-latest, macos-latest]
7888 runs-on : ${{ matrix.os }}
89+ permissions :
90+ id-token : write
91+ contents : write
7992 steps :
8093 - name : Set up Homebrew
8194 id : set-up-homebrew
8295 uses : Homebrew/actions/setup-homebrew@master
8396
97+ - name : Authenticate GitHub workflow to AWS
98+ uses : aws-actions/configure-aws-credentials@v4
99+ with :
100+ role-to-assume : ${{ env.AWS_ROLE }}
101+ aws-region : ${{ env.AWS_REGION }}
102+
103+ - name : Fetch secrets
104+ run : |
105+ echo "FORK_REPO=https://$(aws secretsmanager get-secret-value --secret-id RELEASE_CI_ACCESS_TOKEN | jq -r '.SecretString')@github.com/${{ env.BOT_USER }}/homebrew-$(echo ${{ env.TAP }} |cut -d / -f 2).git" >> $GITHUB_ENV
106+ echo "GITHUB_TOKEN=$(aws secretsmanager get-secret-value --secret-id RELEASE_CI_ACCESS_TOKEN | jq -r '.SecretString')" >> $GITHUB_ENV
107+
84108 - name : Set up Python
85109 # The GitHub action actions/setup-python@v4 installs CPython 3.10
86110 run : |
@@ -102,43 +126,55 @@ jobs:
102126
103127 - name : Build bottle
104128 run : |
105- brew test-bot --tap ${{ env.TAP }} --testing-formulae ${{ env.TAP }}/${{ env.FORMULA }} --only-formulae --root-url=https://github.com/$GITHUB_REPOSITORY /releases/download/${{ env.RELEASE_TAG }}
129+ brew test-bot --tap ${{ env.TAP }} --testing-formulae ${{ env.TAP }}/${{ env.FORMULA }} --only-formulae --root-url=https://github.com/${{ github.repository }} /releases/download/${{ env.RELEASE_TAG }}
106130
107131 - name : Get Package Path
108132 id : get_package_path
109133 run : |
110- echo "bottle =$(ls *.tar.gz)" >> $GITHUB_ENV
134+ echo "bottle_name =$(ls *.tar.gz)" >> $GITHUB_OUTPUT
111135
112136 - name : Get File Name
113137 id : get_file_name
114138 run : |
115- brew install jq
116- echo "file_name=$(jq -r '."${{ env.TAP }}/${{ env.FORMULA }}".bottle.tags[].filename' *.json)" >> $GITHUB_ENV
139+ file_name="$(cat *.json | jq -r '."${{ env.TAP }}/${{ env.FORMULA }}".bottle.tags[].filename')"
140+ echo "file_name=$file_name" >> $GITHUB_OUTPUT
117141
118142 - name : Upload bottles as artifact
119- uses : actions/upload-artifact@v3
143+ uses : actions/upload-artifact@v4
120144 with :
121- name : bottles
145+ name : bottle-${{ matrix.os }}
122146 path : ' *.bottle.*'
123147
124148 - name : Upload release binary
125149 # this github action is deprecated, but there is no obvious replacement
126150127- env :
128- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
129151 with :
130152 upload_url : ${{ github.event.release.upload_url }}
131- asset_path : ${{ env.bottle }}
132- asset_name : ${{ env .file_name }}
153+ asset_path : ${{ steps.get_package_path.outputs.bottle_name }}
154+ asset_name : ${{ steps.get_file_name.outputs .file_name }}
133155 asset_content_type : application/x-gzip
134156
135157 update-pr :
136158 needs : build-bottle
137159 runs-on : macos-latest
160+ permissions :
161+ id-token : write
162+ contents : write
138163 steps :
139- - uses : actions/download-artifact@v3
164+ - uses : actions/download-artifact@v4
165+ with :
166+ pattern : bottle-*
167+
168+ - name : Authenticate GitHub workflow to AWS
169+ uses : aws-actions/configure-aws-credentials@v4
140170 with :
141- name : bottles
171+ role-to-assume : ${{ env.AWS_ROLE }}
172+ aws-region : ${{ env.AWS_REGION }}
173+
174+ - name : Fetch secrets
175+ run : |
176+ echo "BOT_EMAIL=$(aws secretsmanager get-secret-value --secret-id BOT_EMAIL | jq -r '.SecretString')" >> $GITHUB_ENV
177+ echo "FORK_REPO=https://$(aws secretsmanager get-secret-value --secret-id RELEASE_CI_ACCESS_TOKEN | jq -r '.SecretString')@github.com/${{ env.BOT_USER }}/homebrew-$(echo ${{ env.TAP }} |cut -d / -f 2).git" >> $GITHUB_ENV
142178
143179 - name : Configure git user name and email
144180 run : |
@@ -156,6 +192,6 @@ jobs:
156192
157193 - name : Generate and merge bottle DSL
158194 run : |
159- brew bottle --merge --write $(ls *.json)
195+ brew bottle --merge --write $(ls bottle-*/ *.json)
160196 cd $(brew --repo ${{ env.TAP }})
161197 git push fork-repo bump-${{ env.FORMULA }}-${{ env.VERSION }}
0 commit comments