replace node-pre-gyp-github with gh release (#4329)
This commit is contained in:
85
.github/workflows/node-release.yml
vendored
85
.github/workflows/node-release.yml
vendored
@@ -34,13 +34,56 @@ jobs:
|
||||
currentVersion="$( node -e "console.log(require('./package.json').version)" )"
|
||||
isPublished="$( npm view "$packageName" versions --json | jq -c --arg cv "$currentVersion" 'any(. == $cv)' )"
|
||||
echo "published=$isPublished" >> "$GITHUB_OUTPUT"
|
||||
echo "version=$currentVersion" >> "$GITHUB_OUTPUT"
|
||||
echo "currentVersion: $currentVersion"
|
||||
echo "isPublished: $isPublished"
|
||||
outputs:
|
||||
published: ${{ steps.check.outputs.published }}
|
||||
version: ${{ steps.check.outputs.version }}
|
||||
|
||||
create_release:
|
||||
name: Create draft release
|
||||
needs: release-check
|
||||
if: ${{ needs.release-check.outputs.published == 'false' }}
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Check if prerelease
|
||||
id: prerelease-check
|
||||
run: |
|
||||
version="${{ needs.release-check.outputs.version }}"
|
||||
if [[ "$version" == *-* ]]; then
|
||||
echo "prerelease=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "prerelease=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Extract changelog for version
|
||||
working-directory: platform/node
|
||||
run: |
|
||||
awk -v ver="## ${{ needs.release-check.outputs.version }}" 'BEGIN{p=0} $0==ver{p=1; next} /^## / && p==1{exit} p==1{print}' CHANGELOG.md > changelog_for_version.md
|
||||
cat changelog_for_version.md
|
||||
|
||||
- name: Create draft release
|
||||
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1.21.0
|
||||
with:
|
||||
tag: node-v${{ needs.release-check.outputs.version }}
|
||||
name: node-v${{ needs.release-check.outputs.version }}
|
||||
bodyFile: platform/node/changelog_for_version.md
|
||||
draft: true
|
||||
allowUpdates: true
|
||||
prerelease: ${{ steps.prerelease-check.outputs.prerelease }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
publish_binaries:
|
||||
needs: release-check
|
||||
needs: [release-check, create_release]
|
||||
if: ${{ needs.release-check.outputs.published == 'false' }}
|
||||
runs-on: ${{ matrix.runs-on }}
|
||||
permissions:
|
||||
@@ -232,7 +275,7 @@ jobs:
|
||||
env:
|
||||
PUBLISH: true
|
||||
BUILDTYPE: RelWithDebInfo
|
||||
NODE_PRE_GYP_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
./scripts/publish.sh
|
||||
|
||||
@@ -242,13 +285,13 @@ jobs:
|
||||
env:
|
||||
PUBLISH: true
|
||||
BUILDTYPE: RelWithDebInfo
|
||||
NODE_PRE_GYP_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
./scripts/publish.sh --target_arch=arm64
|
||||
|
||||
publish_npm:
|
||||
runs-on: ubuntu-latest
|
||||
needs: publish_binaries
|
||||
needs: [publish_binaries, release-check]
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -264,46 +307,20 @@ jobs:
|
||||
node-version-file: 'platform/node/.nvmrc'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Get version
|
||||
id: package-version
|
||||
uses: martinbeentjes/npm-get-version-action@3cf273023a0dda27efcd3164bdfb51908dd46a5b # v1.3.1
|
||||
with:
|
||||
path: platform/node
|
||||
|
||||
- name: npm ci
|
||||
working-directory: platform/node
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Prepare release
|
||||
id: prepare_release
|
||||
working-directory: platform/node
|
||||
run: |
|
||||
RELEASE_TYPE="$(node -e "console.log(require('semver').prerelease('${{ steps.package-version.outputs.current-version }}') ? 'prerelease' : 'regular')")"
|
||||
if [[ $RELEASE_TYPE == 'regular' ]]; then
|
||||
echo "prerelease=false" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
version="${{ needs.release-check.outputs.version }}"
|
||||
if [[ "$version" == *-* ]]; then
|
||||
echo "prerelease=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "prerelease=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Extract changelog for version
|
||||
working-directory: platform/node
|
||||
run: |
|
||||
awk -v ver="## ${{ steps.package-version.outputs.current-version }}" 'BEGIN{p=0} $0==ver{p=1; next} /^## / && p==1{exit} p==1{print}' CHANGELOG.md > changelog_for_version.md
|
||||
cat changelog_for_version.md
|
||||
|
||||
- name: Update Release Notes
|
||||
id: update_release_notes
|
||||
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1.21.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag: node-v${{ steps.package-version.outputs.current-version }}
|
||||
name: node-v${{ steps.package-version.outputs.current-version }}
|
||||
bodyFile: platform/node/changelog_for_version.md
|
||||
allowUpdates: true
|
||||
draft: true
|
||||
prerelease: ${{ steps.prepare_release.outputs.prerelease }}
|
||||
|
||||
- name: Publish to NPM (release)
|
||||
if: ${{ steps.prepare_release.outputs.prerelease == 'false' }}
|
||||
working-directory: platform/node
|
||||
|
||||
Reference in New Issue
Block a user