set-version #74
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
name: Set branch version | |
on: | |
repository_dispatch: | |
types: [set-version] | |
permissions: | |
contents: read | |
# Ensure scripts are run with pipefail. See: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
ref: ${{ github.event.client_payload.branch_name }} | |
token: ${{ secrets.TS_BOT_GITHUB_TOKEN }} | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
- run: | | |
npm --version | |
# corepack enable npm | |
npm install -g $(jq -r '.packageManager' < package.json) | |
npm --version | |
# notably, this is essentially the same script as `new-release-branch.yaml` (with fewer inputs), but it assumes the branch already exists | |
# do note that executing the transform below will prevent the `configurePrerelease` script from running on the source, as it makes the | |
# `version` identifier no longer match the regex it uses | |
# required client_payload members: | |
# branch_name - the target branch | |
# package_version - the full version string (eg, `3.9.1-rc` or `3.9.2`) | |
# core_major_minor - the major.minor pair associated with the desired package_version (eg, `3.9` for `3.9.3`) | |
- run: | | |
sed -i -e 's/"version": ".*"/"version": "${{ github.event.client_payload.package_version }}"/g' package.json | |
sed -i -e 's/const versionMajorMinor = ".*"/const versionMajorMinor = "${{ github.event.client_payload.core_major_minor }}"/g' src/compiler/corePublic.ts | |
sed -i -e 's/const versionMajorMinor = ".*"/const versionMajorMinor = "${{ github.event.client_payload.core_major_minor }}"/g' tests/baselines/reference/api/typescript.d.ts | |
sed -i -e 's/const versionMajorMinor = ".*"/const versionMajorMinor = "${{ github.event.client_payload.core_major_minor }}"/g' tests/baselines/reference/api/tsserverlibrary.d.ts | |
sed -i -e 's/const version\(: string\)\{0,1\} = .*;/const version = "${{ github.event.client_payload.package_version }}" as string;/g' src/compiler/corePublic.ts | |
npm ci | |
npm install # update package-lock.json to ensure the version bump is included | |
npx hereby LKG | |
npm test | |
git diff | |
git add package.json package-lock.json | |
git add src/compiler/corePublic.ts | |
git add tests/baselines/reference/api/typescript.d.ts | |
git add tests/baselines/reference/api/tsserverlibrary.d.ts | |
git add --force ./lib | |
git config user.email "[email protected]" | |
git config user.name "TypeScript Bot" | |
git commit -m 'Bump version to ${{ github.event.client_payload.package_version }} and LKG' | |
git push |