name: Publish release on: workflow_dispatch: inputs: version: description: 'The version number to tag and release' required: true type: string prerelease: description: 'Release as pre-release' required: false type: boolean default: false jobs: release-npm: runs-on: ubuntu-latest environment: main permissions: contents: write id-token: write steps: - uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4 - uses: actions/setup-node@v5 with: node-version: '22' registry-url: 'https://registry.npmjs.org' - run: npm install npm -g - run: npm install - name: Change version number and sync run: | node scripts/sync-version.mjs ${{ inputs.version }} - name: GIT commit and push all changed files run: | git config --global user.name "mcollina" git config --global user.email "hello@matteocollina.com" git commit -n -a -m "Bumped v${{ inputs.version }}" git push origin HEAD:${{ github.ref }} - run: npm publish --access public --tag ${{ inputs.prerelease == true && 'next' || 'latest' }} - name: 'Create release notes' run: | npx @matteo.collina/release-notes -a ${{ secrets.GITHUB_TOKEN }} -t v${{ inputs.version }} -r redact -o pinojs ${{ github.event.inputs.prerelease == 'true' && '-p' || '' }} -c ${{ github.ref }}