Trigger Release #117
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
schedule: | |
# run every day at 23:15 | |
- cron: '15 23 * * *' | |
workflow_dispatch: | |
inputs: | |
releaseType: | |
description: stable or canary? | |
required: true | |
type: choice | |
options: | |
- canary | |
- stable | |
semverType: | |
description: semver type? | |
type: choice | |
options: | |
- patch | |
- minor | |
- major | |
secrets: | |
RELEASE_BOT_GITHUB_TOKEN: | |
required: true | |
name: Trigger Release | |
env: | |
NAPI_CLI_VERSION: 2.14.7 | |
TURBO_VERSION: 1.12.5 | |
NODE_LTS_VERSION: 20 | |
jobs: | |
start: | |
if: github.repository_owner == 'vercel' | |
runs-on: ubuntu-latest | |
env: | |
NEXT_TELEMETRY_DISABLED: 1 | |
# we build a dev binary for use in CI so skip downloading | |
# canary next-swc binaries in the monorepo | |
NEXT_SKIP_NATIVE_POSTINSTALL: 1 | |
environment: release-${{ github.event.inputs.releaseType || 'canary' }} | |
steps: | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
check-latest: true | |
- name: Clone Next.js repository | |
run: git clone https://github.com/vercel/next.js.git --depth=25 --single-branch --branch ${GITHUB_REF_NAME:-canary} . | |
- name: Get commit of the latest tag | |
run: echo "LATEST_TAG_COMMIT=$(git rev-list -n 1 $(git describe --tags --abbrev=0))" >> $GITHUB_ENV | |
- name: Get latest commit | |
run: echo "LATEST_COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV | |
- name: Check if new commits since last tag | |
if: ${{ github.event.inputs.releaseType != 'stable' }} | |
run: | | |
if [ "$LATEST_TAG_COMMIT" = "$LATEST_COMMIT" ]; then | |
echo "No new commits. Exiting..." | |
exit 1 | |
fi | |
# https://github.com/actions/virtual-environments/issues/1187 | |
- name: tune linux network | |
run: sudo ethtool -K eth0 tx off rx off | |
- run: corepack enable && pnpm --version | |
- id: get-store-path | |
run: echo STORE_PATH=$(pnpm store path) >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
timeout-minutes: 5 | |
id: cache-pnpm-store | |
with: | |
path: ${{ steps.get-store-path.outputs.STORE_PATH }} | |
key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
pnpm-store- | |
pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm install | |
- run: pnpm run build | |
- run: node ./scripts/start-release.js --release-type ${{ github.event.inputs.releaseType || 'canary' }} --semver-type ${{ github.event.inputs.semverType }} | |
env: | |
RELEASE_BOT_GITHUB_TOKEN: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} |