Skip to content

Commit 42539dc

Browse files
committed
use package.jsom to build our latest binaries.
1 parent 0c2a978 commit 42539dc

File tree

1 file changed

+33
-34
lines changed

1 file changed

+33
-34
lines changed

.github/workflows/prebuild.yml

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ on:
55
workflow_dispatch:
66
inputs:
77
release_tag:
8-
description: 'Release tag to upload prebuilds to (e.g., v5.0.0)'
8+
description: 'Release tag to upload prebuilds to (leave empty to use package.json version)'
99
required: false
1010
type: string
11-
default: 'v5.0.0'
11+
default: ''
1212
create_release:
1313
description: "Create new release if it doesn't exist"
1414
required: false
@@ -228,23 +228,39 @@ jobs:
228228
echo "=== Workflow dispatch inputs ==="
229229
echo "Event name: ${{ github.event_name }}"
230230
echo "Release tag input: '${{ github.event.inputs.release_tag }}'"
231-
echo "Will upload to release: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '' }}"
232231
233-
# Upload to existing release when manually triggered with a release tag
234-
- name: Upload to Existing Release
235-
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != ''
232+
# Determine release tag (from input or package.json)
233+
- name: Determine Release Tag
234+
id: release_tag
235+
run: |
236+
if [ -n "${{ github.event.inputs.release_tag }}" ]; then
237+
RELEASE_TAG="${{ github.event.inputs.release_tag }}"
238+
echo "Using provided release tag: $RELEASE_TAG"
239+
else
240+
# Extract version from package.json and add 'v' prefix
241+
VERSION=$(node -p "require('./package.json').version")
242+
RELEASE_TAG="v${VERSION}"
243+
echo "Using package.json version: $RELEASE_TAG"
244+
fi
245+
echo "release_tag=$RELEASE_TAG" >> $GITHUB_OUTPUT
246+
echo "Final release tag: $RELEASE_TAG"
247+
248+
# Upload to existing release when manually triggered
249+
- name: Upload to Release
250+
if: github.event_name == 'workflow_dispatch'
236251
env:
237252
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
238253
run: |
239-
echo "Uploading prebuilds to existing release: ${{ github.event.inputs.release_tag }}"
254+
RELEASE_TAG="${{ steps.release_tag.outputs.release_tag }}"
255+
echo "Uploading prebuilds to release: $RELEASE_TAG"
240256
241257
# Check if release exists
242258
echo "Checking if release exists..."
243-
if gh release view "${{ github.event.inputs.release_tag }}" >/dev/null 2>&1; then
244-
echo "Release ${{ github.event.inputs.release_tag }} exists"
259+
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
260+
echo "Release $RELEASE_TAG exists"
245261
RELEASE_EXISTS=true
246262
else
247-
echo "Release ${{ github.event.inputs.release_tag }} not found"
263+
echo "Release $RELEASE_TAG not found"
248264
RELEASE_EXISTS=false
249265
fi
250266
@@ -267,7 +283,7 @@ jobs:
267283
cd upload-staging
268284
for file in *.tar.gz; do
269285
echo "Uploading $file..."
270-
gh release upload "${{ github.event.inputs.release_tag }}" "$file" --clobber
286+
gh release upload "$RELEASE_TAG" "$file" --clobber
271287
done
272288
273289
# Note: Auto-generated notes only work when creating new releases
@@ -277,16 +293,16 @@ jobs:
277293
# Create new release with auto-generated notes and upload files
278294
echo "Creating new release with auto-generated notes..."
279295
cd upload-staging
280-
if gh release create "${{ github.event.inputs.release_tag }}" \
281-
--title "Release ${{ github.event.inputs.release_tag }}" \
296+
if gh release create "$RELEASE_TAG" \
297+
--title "Release $RELEASE_TAG" \
282298
--generate-notes \
283299
*.tar.gz 2>/dev/null; then
284300
echo "Release created with auto-generated notes"
285301
else
286302
echo "Auto-generated notes not supported, creating release without notes..."
287-
gh release create "${{ github.event.inputs.release_tag }}" \
288-
--title "Release ${{ github.event.inputs.release_tag }}" \
289-
--notes "Release ${{ github.event.inputs.release_tag }}" \
303+
gh release create "$RELEASE_TAG" \
304+
--title "Release $RELEASE_TAG" \
305+
--notes "Release $RELEASE_TAG" \
290306
*.tar.gz
291307
fi
292308
fi
@@ -302,21 +318,4 @@ jobs:
302318
echo ""
303319
echo "ℹ️ Alpine Linux (musl) prebuilds must be built manually:"
304320
echo " npx prebuild --target alpine"
305-
echo " gh release upload ${{ github.event.inputs.release_tag }} *.tar.gz"
306-
307-
# Create a draft release for testing (when no release tag specified)
308-
- name: Create Draft Release with Prebuilds
309-
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag == ''
310-
uses: softprops/action-gh-release@v1
311-
with:
312-
draft: true
313-
tag_name: test-${{ github.run_number }}
314-
name: Test Release ${{ github.run_number }}
315-
files: prebuilds-artifacts/**/*.tar.gz
316-
body: |
317-
This is a test release created by workflow run #${{ github.run_number }}.
318-
319-
## Prebuilds included:
320-
- Node.js versions: 20, 22, 23, 24
321-
- Electron versions: 32, 33, 34, 35, 36
322-
- Platforms: Windows, Linux, macOS
321+
echo " gh release upload $RELEASE_TAG *.tar.gz"

0 commit comments

Comments
 (0)