Skip to content

ci: Bump actions, fix release script (#212) #9

ci: Bump actions, fix release script (#212)

ci: Bump actions, fix release script (#212) #9

Workflow file for this run

name: Release
on:
push:
branches:
- main
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
outputs:
has_changesets: ${{ steps.changesets.outputs.hasChangesets }}
should_publish: ${{ steps.publish-check.outputs.should_publish }}
permissions:
contents: write
issues: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
package-manager-cache: false
node-version-file: package.json
registry-url: "https://registry.npmjs.org"
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Create Release Pull Request
id: changesets
uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3
with:
version: npm run version
commitMode: github-api
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check for unpublished package versions
if: steps.changesets.outputs.hasChangesets == 'false'
id: publish-check
run: node .github/scripts/has-unpublished-packages.mjs
publish:
name: Publish
needs: release
if: needs.release.outputs.should_publish == 'true'
environment:
name: npm
url: https://www.npmjs.com/package/@preact/preset-vite
permissions:
contents: write
id-token: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
package-manager-cache: false
node-version: 22
registry-url: "https://registry.npmjs.org"
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Update npm
run: npm install -g npm@11.15.0
- name: Build package
run: npm run build
# changesets/action skips `git config user.*` in github-api commit mode,
# and checkout uses persist-credentials: false, so no identity is set.
# stage-packages.mjs creates annotated tags (`git tag -m`), which require one.
- name: Configure git identity
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Publish packages
uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3
with:
publish: node .github/scripts/stage-package.mjs
createGithubReleases: true
commitMode: github-api
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}