Skip to content

Commit 766d314

Browse files
committed
ci: add "force_rebuild" input to "release native" workflow
1 parent a19bba8 commit 766d314

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

.github/workflows/release-native.yml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ name: Release Native Binaries
22

33
on:
44
workflow_dispatch:
5+
inputs:
6+
force_rebuild:
7+
description: Force rebuild and overwrite existing release
8+
required: false
9+
default: false
10+
type: boolean
511
workflow_call:
612

713
permissions:
@@ -15,8 +21,8 @@ jobs:
1521
name: Get Native Info
1622
runs-on: ubuntu-22.04
1723
outputs:
18-
native_version: ${{ steps.read_package.outputs.native_version }}
19-
release_exists: ${{ steps.release_exists.outputs.result }}
24+
native_version: ${{ steps.read_package.outputs.native_version }}
25+
should_build: ${{ steps.set_should_build.outputs.result }}
2026
steps:
2127
- uses: actions/checkout@v4
2228
- name: Read package.json
@@ -26,11 +32,13 @@ jobs:
2632
- name: Check Release Exists
2733
id: release_exists
2834
uses: actions/github-script@v8
35+
env:
36+
NATIVE_VERSION: ${{ steps.read_package.outputs.native_version }}
2937
with:
3038
result-encoding: string
3139
script: |
3240
try {
33-
const tag = 'native-v${{ steps.read_package.outputs.native_version }}';
41+
const tag = `native-v${process.env.NATIVE_VERSION}`;
3442
const release = await github.rest.repos.getReleaseByTag({
3543
owner: context.repo.owner,
3644
repo: context.repo.repo,
@@ -40,12 +48,22 @@ jobs:
4048
} catch (error) {
4149
return false;
4250
}
51+
- name: Decide if should build
52+
id: set_should_build
53+
run: |
54+
if [ "${{ inputs.force_rebuild }}" = "true" ]; then
55+
echo "result=true" >> $GITHUB_OUTPUT
56+
elif [ "${{ steps.release_exists.outputs.result }}" = "false" ]; then
57+
echo "result=true" >> $GITHUB_OUTPUT
58+
else
59+
echo "result=false" >> $GITHUB_OUTPUT
60+
fi
4361
4462
build_binaries:
4563
name: Build Native Binaries
4664
runs-on: ${{ matrix.os }}
4765
needs: native_info
48-
if: needs.native_info.outputs.release_exists == 'false'
66+
if: needs.native_info.outputs.should_build == 'true'
4967
strategy:
5068
fail-fast: true
5169
matrix:
@@ -80,7 +98,7 @@ jobs:
8098
image: ${{ matrix.image }}
8199
steps:
82100
- name: Setup
83-
run: ${{ matrix.setup }}
101+
run: ${{ matrix.setup }}
84102
- uses: actions/checkout@v4
85103
- name: Install Nodejs
86104
uses: actions/setup-node@v6
@@ -120,7 +138,7 @@ jobs:
120138
needs:
121139
- native_info
122140
- build_binaries
123-
if: needs.native_info.outputs.release_exists == 'false' && needs.build_binaries.result == 'success'
141+
if: needs.native_info.outputs.should_build == 'true' && needs.build_binaries.result == 'success'
124142
steps:
125143
- name: Download All Built Artifacts
126144
uses: actions/download-artifact@v4
@@ -133,5 +151,6 @@ jobs:
133151
tag_name: native-v${{ needs.native_info.outputs.native_version }}
134152
name: "lua-state-native-v${{ needs.native_info.outputs.native_version }}-lua-v${{ env.LUA_VERSION }}"
135153
generate_release_notes: true
154+
overwrite_files: true
136155
fail_on_unmatched_files: true
137156
prerelease: true

0 commit comments

Comments
 (0)