name: Release on: push: branches: - main jobs: release: name: Release runs-on: ubuntu-22.04 timeout-minutes: 20 permissions: contents: write id-token: write issues: write repository-projects: write deployments: write packages: write pull-requests: write steps: - name: Checkout Repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 9 run_install: false - name: Get pnpm store directory id: pnpm-store run: echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" - name: Use pnpm store uses: actions/cache@v4 id: pnpm-cache with: path: ${{ steps.pnpm-store.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: PR or Publish id: changesets uses: changesets/action@v1.5.3 with: version: pnpm changeset:version publish: pnpm changeset:publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Notify discord id: discord-msg if: steps.changesets.outputs.published == 'true' uses: ./.github/actions/discord-message with: publishedPackages: ${{ steps.changesets.outputs.publishedPackages }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - name: Publish Prerelease if: steps.changesets.outputs.published != 'true' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git reset --hard origin/main pnpm changeset version --no-git-tag --snapshot canary pnpm changeset publish --no-git-tag --snapshot canary --tag canary