Skip to content

node-build-release

node-build-release #21

name: node-build-release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
tags:
description: 'Build tags'
jobs:
build:
if: github.actor == 'badabing2005'
runs-on: ubuntu-latest
name: Build
steps:
- name: Checkout Code
uses: actions/checkout/@v4
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Dependencies
run: npm ci
- name: Build Package
run: |
npm run dist
- name: Get Name
id: get_name
run: |
echo "VALUE_NAME=$(node -p "require('./package.json').name")" >> $GITHUB_ENV
- name: Get Version
id: get_version
run: |
echo "VALUE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
- name: Get Id
id: get_id
run: |
echo "VALUE_ID=$(node -p "require('./src/manifest.json').id")" >> $GITHUB_ENV
- name: Create Zip File
run: |
cd ./publish
zip -r ./${{ env.VALUE_NAME }}_v${{ env.VALUE_VERSION }}.zip ./${{ env.VALUE_ID }}.jpl
- name: Create ChangeLog Text
id: changelog_text
uses: loopwerk/tag-changelog@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/scripts/tag-changelog-config.js
- name: Create Release
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Release ${{ env.VALUE_VERSION }}
prerelease: false
draft: true
files: |
./publish/${{ env.VALUE_NAME }}_v${{ env.VALUE_VERSION }}.zip
body: ${{ steps.changelog_text.outputs.changes }}
continue-on-error: true
publish:
needs: build
runs-on: ubuntu-latest
name: Publish
steps:
- name: Checkout Code
uses: actions/checkout/@v4
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Dependencies
run: npm ci
- name: Set npm Registry URL
run: npm config set registry https://registry.npmjs.org/
- name: Set npm Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
- name: Debug NPM Config
run: npm config ls
- name: Publish to npm
run: npm publish