@@ -5,15 +5,14 @@ on: # yamllint disable-line rule:truthy
55 tags :
66 - v[0-9]+.[0-9]+.[0-9]+
77
8- jobs :
9- release :
10- permissions :
11- contents : write
8+ # default permissions as read only
9+ permissions : read-all
1210
11+ jobs :
12+ build :
1313 runs-on : ubuntu-latest
1414 env :
1515 IMG_BASE : quay.io/sustainable_computing_io
16-
1716 steps :
1817 - name : Checkout source
1918 uses : actions/checkout@v5
@@ -90,19 +89,13 @@ jobs:
9089 # Currently the binary is built for linux-amd64 only
9190 tar -czvf bin/kepler-${VERSION}.linux-amd64.tar.gz bin/kepler
9291
93- - name : Create GitHub Release
94- uses : softprops/action-gh-release@v2
92+ - name : Upload Release Artifacts
93+ uses : actions/upload-artifact@v4
9594 with :
96- tag_name : ${{ github.ref_name }}
97- name : release-${{ steps.version.outputs.version }}
98- generate_release_notes : true
99- draft : false
100- make_latest : true
101- files : |
95+ name : release-artifacts
96+ path : |
10297 helm-releases/*.tgz
10398 bin/*.tar.gz
104- env :
105- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
10699
107100 - name : Push Image
108101 shell : bash
@@ -116,3 +109,38 @@ jobs:
116109 # Remove 'v' prefix from version
117110 CHART_VERSION=${VERSION#v}
118111 helm push helm-releases/kepler-helm-${CHART_VERSION}.tgz oci://${{ env.IMG_BASE }}/charts
112+
113+ release :
114+ needs : build
115+ permissions :
116+ # contents: write is required for publishing Github Releases
117+ # This follows Github's recommended pattern: top-level read-all with minimal job-level permissions
118+ # See: https://github.com/softprops/action-gh-release?tab=readme-ov-file#permissions
119+ contents : write
120+ runs-on : ubuntu-latest
121+ steps :
122+ - name : Download Release Artifacts
123+ uses : actions/download-artifact@v4
124+ with :
125+ name : release-artifacts
126+
127+ - name : Extract version
128+ shell : bash
129+ id : version
130+ run : |
131+ TAG_NAME=${{ github.ref_name }}
132+ echo "version=$TAG_NAME" >> "$GITHUB_OUTPUT"
133+
134+ - name : Create GitHub Release
135+ uses : softprops/action-gh-release@v2
136+ with :
137+ tag_name : ${{ github.ref_name }}
138+ name : release-${{ steps.version.outputs.version }}
139+ generate_release_notes : true
140+ draft : false
141+ make_latest : true
142+ files : |
143+ helm-releases/*.tgz
144+ bin/*.tar.gz
145+ env :
146+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments