71
71
description : " Dry run (Test-build RPMs)"
72
72
required : false
73
73
default : ' no'
74
- verbose :
75
- description : ' Verbose RPM builds when "yes"'
74
+ # verbose:
75
+ # description: 'Verbose RPM builds when "yes"'
76
+ # required: false
77
+ # default: 'no'
78
+ rebuild_number :
79
+ description : ' If this is an RPM rebuild, put the number of the rebuild here'
76
80
required : false
77
- default : ' no'
81
+ default : ' '
82
+
78
83
79
84
env :
80
85
TARGET_REPO : ${{ (github.event.inputs.target_repo != null && format('{0}/{1}', github.repository_owner, github.event.inputs.target_repo)) || github.repository }}
@@ -99,13 +104,13 @@ jobs:
99
104
100
105
if [[ "$RELEASE_TAG" =~ ^(simp-|v)?([0-9]+\.[0-9]+\.[0-9]+)(-(rc|RC|[Aa]lpha|[Bb]eta|pre|post)?([0-9]+)?)?$ ]]; then
101
106
if [ -n "${BASH_REMATCH[5]}" ]; then
102
- echo "::set-output name= prebuild_number:: ${BASH_REMATCH[5]#-}"
107
+ echo "{ prebuild_number}={ ${BASH_REMATCH[5]#-}}" >> $GITHUB_OUTPUT
103
108
fi
104
109
if [ -n "${BASH_REMATCH[3]}" ]; then
105
- echo "::set-output name= prebuild_suffix:: ${BASH_REMATCH[3]#-}"
110
+ echo "{ prebuild_suffix}={ ${BASH_REMATCH[3]#-}}" >> $GITHUB_OUTPUT
106
111
fi
107
112
if [ -n "${BASH_REMATCH[2]}" ]; then
108
- echo "::set-output name= build_semver:: ${BASH_REMATCH[2]}"
113
+ echo "{ build_semver}={ ${BASH_REMATCH[2]}}" >> $GITHUB_OUTPUT
109
114
fi
110
115
else
111
116
printf '::error ::Release Tag format is not SemVer, X.Y.Z-R, X.Y.Z-<prerelease>: "%s"\n' "$RELEASE_TAG"
@@ -121,7 +126,7 @@ jobs:
121
126
env:
122
127
AUTOCREATE_RELEASE: ${{ github.event.inputs.autocreate_release }}
123
128
PREBUILD_TAG: ${{ steps.validate-inputs.outputs.prebuild_suffix }}
124
- uses: actions/github-script@v4
129
+ uses: actions/github-script@v6
125
130
with:
126
131
github-token: ${{ github.event.inputs.target_repo_token || secrets.GITHUB_TOKEN }}
127
132
script: |
@@ -189,7 +194,7 @@ jobs:
189
194
)
190
195
191
196
- name : Checkout code
192
- uses : actions/checkout@v2
197
+ uses : actions/checkout@v3
193
198
with :
194
199
repository : ${{ env.TARGET_REPO }}
195
200
ref : ${{ env.RELEASE_TAG }}
@@ -221,6 +226,22 @@ jobs:
221
226
printf '::warning ::Added file build/rpm_metadata/release with content "%s"\n' "$(cat build/rpm_metadata/release)"
222
227
fi
223
228
229
+ - name : ' Customize RPM Release tag via build/rpm_metadata/release (RPM rebuild)'
230
+ if : ${{ github.event.inputs.rebuild_number != '' }}
231
+ env :
232
+ BUILD_SEMVER : ${{ steps.validate-inputs.outputs.build_semver }}
233
+ REBUILD_NUMBER : ${{ github.event.inputs.rebuild_number }}
234
+ run : |
235
+ mkdir -p build/rpm_metadata
236
+ # simp-doc uses a unique data format in /release
237
+ if [[ "$TARGET_REPO" =~ ^simp\/simp-doc$ ]]; then
238
+ echo "version: $BUILD_SEMVER" > build/rpm_metadata/release
239
+ echo "release: $REBUILD_NUMBER" > build/rpm_metadata/release
240
+ else
241
+ echo "$REBUILD_NUMBER" > build/rpm_metadata/release
242
+ fi
243
+ printf '::warning ::Added file build/rpm_metadata/release with content "%s"\n' "$(cat build/rpm_metadata/release)"
244
+
224
245
- name : >
225
246
Build & Sign RPMs for
226
247
${{ github.event.inputs.release_tag }}
@@ -234,30 +255,30 @@ jobs:
234
255
simp_core_ref_for_building_rpms: ${{ secrets.SIMP_CORE_REF_FOR_BUILDING_RPMS }}
235
256
simp_builder_docker_image: 'docker.io/simpproject/simp_build_${{ github.event.inputs.build_container_os }}:latest'
236
257
path_to_build: "${{ (github.event.inputs.path_to_build != null && format('{0}/{1}', github.workspace, github.event.inputs.path_to_build)) || github.workspace }}"
237
- verbose: ${{ github.event.inputs.verbose }}
258
+ verbose: 'no' # ${{ github.event.inputs.verbose }}
238
259
239
260
- name : " Wipe all previous assets from GitHub Release (when clean == 'yes')"
240
261
if : ${{ github.event.inputs.clean == 'yes' && github.event.inputs.dry_run != 'yes' }}
241
- uses : actions/github-script@v4
262
+ uses : actions/github-script@v6
242
263
env :
243
264
release_id : ${{ steps.release-api.outputs.id }}
244
265
with :
245
266
github-token : ${{ github.event.inputs.target_repo_token || secrets.GITHUB_TOKEN }}
246
267
script : |
247
268
const release_id = process.env.release_id
248
269
const [owner, repo] = process.env.TARGET_REPO.split('/')
249
- const existingAssets = await github.repos.listReleaseAssets({ owner, repo, release_id })
270
+ const existingAssets = await github.rest. repos.listReleaseAssets({ owner, repo, release_id })
250
271
251
272
console.log( ` !! !! Wiping ALL uploaded assets for ${owner}/${repo} release (id: ${release_id})`)
252
273
existingAssets.data.forEach(async function(asset){
253
274
asset_id = asset.id
254
275
console.log( ` !! !! !! Wiping existing asset for ${asset.name} (id: ${asset_id})`)
255
- await github.repos.deleteReleaseAsset({ owner, repo, asset_id })
276
+ await github.rest. repos.deleteReleaseAsset({ owner, repo, asset_id })
256
277
})
257
278
258
279
- name : " Upload RPM file(s) to GitHub Release (dry_run != 'yes')"
259
280
if : ${{ github.event.inputs.dry_run != 'yes' }}
260
- uses : actions/github-script@v4
281
+ uses : actions/github-script@v6
261
282
env :
262
283
rpm_file_paths : ${{ steps.build-and-sign-rpm.outputs.rpm_file_paths }}
263
284
rpm_gpg_file : ${{ steps.build-and-sign-rpm.outputs.rpm_gpg_file }}
@@ -274,12 +295,12 @@ jobs:
274
295
async function clobberAsset (name, owner, repo, release_id ){
275
296
console.log( ` -- clobber asset ${name}: owner: ${owner} repo: ${repo} release_id: ${release_id}` )
276
297
277
- const existingAssets = await github.repos.listReleaseAssets({ owner, repo, release_id })
298
+ const existingAssets = await github.rest. repos.listReleaseAssets({ owner, repo, release_id })
278
299
const matchingAssets = existingAssets.data.filter(item => item.name == name);
279
300
if ( matchingAssets.length > 0 ){
280
301
asset_id = matchingAssets[0].id
281
302
console.log( ` !! !! Clobbering existing asset for ${name} (id: ${asset_id})`)
282
- await github.repos.deleteReleaseAsset({ owner, repo, asset_id })
303
+ await github.rest. repos.deleteReleaseAsset({ owner, repo, asset_id })
283
304
return(true)
284
305
}
285
306
return(false)
@@ -297,7 +318,7 @@ jobs:
297
318
};
298
319
299
320
console.log( ` == Uploading asset ${name}: ${assetContentType}` )
300
- const uploadAssetResponse = await github.repos.uploadReleaseAsset({
321
+ const uploadAssetResponse = await github.rest. repos.uploadReleaseAsset({
301
322
owner, repo, release_id, data, name, headers,
302
323
})
303
324
return( uploadAssetResponse );
0 commit comments