# A workflow runs when a release is published, dispatches a new event to the vercel/turbo # to notify its release. Turbopack, and other integration workflow will subscribe to this event. name: Notify new Next.js release on: release: types: [published] jobs: notify: runs-on: ubuntu-latest if: ${{ github.event_name == 'release' }} steps: - uses: actions/github-script@v7 id: notify-new-release with: result-encoding: string retries: 3 retry-exempt-status-codes: 400,401 # Default github token cannot dispatch events to the remote repo, it should be # a PAT with access to contenst:read&write + metadata:read. github-token: ${{ secrets.TURBOPACK_TEST_TOKEN }} # Note `event_type` and `client_payload` are contract between vercel/turbo, # if these need to be changed both side should be updated accordingly. script: | github.request('POST /repos/{owner}/{repo}/dispatches', { owner: 'vercel', repo: 'turbo', event_type: 'nextjs-release-published', client_payload: { version: context.ref } }) front-sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - id: nextPackageInfo name: Get `next` package info run: | cd packages/next { echo 'value<> "$GITHUB_OUTPUT" - id: version name: Extract `next` version run: echo 'value=${{ fromJson(steps.nextPackageInfo.outputs.value).version }}' >> "$GITHUB_OUTPUT" - name: Check token run: gh auth status env: GITHUB_TOKEN: ${{ secrets.FRONT_TEST_TOKEN }} - uses: actions/github-script@v7 name: Trigger vercel/front sync id: trigger-front-sync with: retries: 3 retry-exempt-status-codes: 400,401,404 # Default github token cannot dispatch events to the remote repo, it should be # a PAT with Actions write access (https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event) github-token: ${{ secrets.FRONT_TEST_TOKEN }} # Note `workflow_id` and `inputs` are contract between vercel/front, # if these need to be changed both side should be updated accordingly. script: | await github.request( "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", { owner: "vercel", repo: "front", workflow_id: "cron-update-next.yml", ref: "main", inputs: { version: "${{ steps.version.outputs.value }}", }, } ); // Ideally we'd include a URL to this specific sync. // However, creating a workflow_dispatch event does not produce an ID: https://github.com/orgs/community/discussions/9752 console.info( "Sync started in https://github.com/vercel/front/actions/workflows/cron-update-next.yml?query=event%3Aworkflow_dispatch" ); console.info( "This may not start a new sync if one is already in progress. Check the logs of the cron-update-next Workflow run." );