name: npm Package Release on: workflow_dispatch: permissions: contents: write id-token: write concurrency: group: npm-package-release-main cancel-in-progress: false jobs: release: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Set up pnpm uses: pnpm/action-setup@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version-file: .node-version cache: pnpm cache-dependency-path: pnpm-lock.yaml registry-url: https://registry.npmjs.org - name: Install workspace dependencies run: pnpm install --frozen-lockfile - name: Resolve next package version id: version run: | version="$(pnpm --silent release:packages:next-version)" printf 'version=%s\n' "${version}" >> "$GITHUB_OUTPUT" echo "Releasing package version ${version}" - name: Apply package release version env: TUTTI_PACKAGE_RELEASE_VERSION: ${{ steps.version.outputs.version }} run: pnpm release:packages:apply-version "${TUTTI_PACKAGE_RELEASE_VERSION}" - name: Validate package tarballs run: pnpm release:pack:check - name: Publish packages env: TUTTI_PACKAGE_RELEASE_VERSION: ${{ steps.version.outputs.version }} TUTTI_NPM_PUBLISH_CONCURRENCY: "4" TUTTI_NPM_PROVENANCE: ${{ github.event.repository.private != true }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: pnpm release:packages "${TUTTI_PACKAGE_RELEASE_VERSION}"