name: Release on: push: branches: - master permissions: contents: write issues: write pull-requests: write jobs: release: name: Create Release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false - name: Check for skip ci id: check_skip run: | if git log -1 --pretty=%B | grep -q '\[skip ci\]'; then echo "skip=true" >> $GITHUB_OUTPUT else echo "skip=false" >> $GITHUB_OUTPUT fi - name: Setup pnpm if: steps.check_skip.outputs.skip == 'false' uses: pnpm/action-setup@v4 with: version: 9.0.0 - name: Setup Node.js if: steps.check_skip.outputs.skip == 'false' uses: actions/setup-node@v4 with: node-version: 20 cache: "pnpm" - name: Install dependencies if: steps.check_skip.outputs.skip == 'false' run: pnpm install --frozen-lockfile - name: Build application if: steps.check_skip.outputs.skip == 'false' run: pnpm build env: NODE_ENV: production - name: Run semantic release if: steps.check_skip.outputs.skip == 'false' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: pnpm semantic-release - name: Upload release artifacts if: steps.check_skip.outputs.skip == 'false' uses: actions/upload-artifact@v4 with: name: release-build path: | .next/ out/ retention-days: 30