name: Release on: push: branches: - "main" - "beta" - "next" - "3.x" - "v4" pull_request: jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Init uses: actions/checkout@v3 with: fetch-depth: 2 - name: Install pnpm uses: pnpm/action-setup@v2.2.4 with: version: 7.5.1 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 18 cache: "pnpm" - name: Install dependencies run: pnpm install - name: Build run: pnpm build env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} - name: Run tests run: pnpm test env: UPSTASH_REDIS_URL: ${{ secrets.UPSTASH_REDIS_URL }} UPSTASH_REDIS_KEY: ${{ secrets.UPSTASH_REDIS_KEY }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} # - name: Coverage # uses: codecov/codecov-action@v1 # with: # directory: ./coverage # fail_ci_if_error: false release-branch: name: Publish branch runs-on: ubuntu-latest needs: test if: ${{ github.event_name == 'push' }} environment: Production steps: - name: Init uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v2.2.4 with: version: 7.5.1 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 18 cache: "pnpm" - name: Install dependencies run: pnpm install - name: Publish to npm and GitHub run: | git config --global user.email "balazsorban44@users.noreply.github.com" git config --global user.name "Balázs Orbán" pnpm release env: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} NPM_TOKEN_PKG: ${{ secrets.NPM_TOKEN_PKG }} NPM_TOKEN_ORG: ${{ secrets.NPM_TOKEN_ORG }} release-pr: name: Publish PR runs-on: ubuntu-latest needs: test if: ${{ github.event_name == 'pull_request' }} environment: Preview steps: - name: Init uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2.2.4 with: version: 7.5.1 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 18 cache: "pnpm" - name: Install dependencies run: pnpm install - name: Determine version uses: ./.github/version-pr id: determine-version env: PR_NUMBER: ${{ github.event.number }} - name: Publish to npm run: | cd packages/next-auth echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc pnpm publish --no-git-checks --access public --tag experimental env: NPM_TOKEN: ${{ secrets.NPM_TOKEN_PKG }} - name: Comment version on PR uses: NejcZdovc/comment-pr@v2 with: message: "🎉 Experimental release [published 📦️ on npm](https://npmjs.com/package/next-auth/v/${{ env.VERSION }})!\n \ ```sh\npnpm add next-auth@${{ env.VERSION }}\n```\n \ ```sh\nyarn add next-auth@${{ env.VERSION }}\n```\n \ ```sh\nnpm i next-auth@${{ env.VERSION }}\n```" env: VERSION: ${{ steps.determine-version.outputs.version }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}