feat: update workflow
This commit is contained in:
48
setup-semrel/action.yml
Normal file
48
setup-semrel/action.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
name: 'Setup Semantic Release'
|
||||
description: 'Setup Node.js and install semantic-release with all necessary plugins'
|
||||
author: 'zertus'
|
||||
|
||||
inputs:
|
||||
node-version:
|
||||
description: 'Node.js version to setup'
|
||||
required: false
|
||||
default: '24'
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: ${{ inputs.node-version }}
|
||||
|
||||
- name: Cache semantic-release dependencies
|
||||
id: cache-semantic-release
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: ${{ github.action_path }}/node_modules
|
||||
key: semantic-release-${{ runner.os }}-node${{ inputs.node-version }}-${{ hashFiles(format('{0}/package.json', github.action_path)) }}
|
||||
|
||||
- name: Install semantic-release dependencies
|
||||
if: steps.cache-semantic-release.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
working-directory: ${{ github.action_path }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm ci && npm cache clean --force
|
||||
echo "✓ Semantic-release dependencies installed"
|
||||
|
||||
- name: Add semantic-release to PATH
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
echo "${{ github.action_path }}/node_modules/.bin" >> $GITHUB_PATH
|
||||
echo "NODE_PATH=${{ github.action_path }}/node_modules${NODE_PATH:+:$NODE_PATH}" >> $GITHUB_ENV
|
||||
if [ ! -e "${{ github.workspace }}/node_modules" ]; then
|
||||
ln -s "${{ github.action_path }}/node_modules" "${{ github.workspace }}/node_modules"
|
||||
fi
|
||||
echo "✓ Semantic-release added to PATH"
|
||||
|
||||
branding:
|
||||
icon: 'tag'
|
||||
color: 'purple'
|
||||
Reference in New Issue
Block a user