Skip to content

v1.0.0

v1.0.0 #1

Workflow file for this run

name: Publish Package
on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version to publish'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run type checking
run: npm run typecheck
- name: Run tests
run: npm run test
- name: Build package
run: npm run build
publish-npm:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Build package
run: npm run build
- name: Publish to NPM
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
publish-github:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
registry-url: 'https://npm.pkg.github.com'
- name: Install dependencies
run: npm ci
- name: Build package
run: npm run build
- name: Configure package for GitHub
run: |
# Create a temporary package.json for GitHub publishing
cp package.json package.json.backup
node -e "
const pkg = require('./package.json');
pkg.name = '@xarlizard/react-api-forge';
pkg.publishConfig = {
'@xarlizard:registry': 'https://npm.pkg.github.com',
'access': 'public'
};
require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));
"
- name: Publish to GitHub Packages
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore package.json
run: mv package.json.backup package.json