bump_version #45
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: bump_version | |
on: | |
# run manually | |
workflow_dispatch: | |
inputs: | |
version: | |
type: string | |
description: Version number (e.g. 1.2.3) | |
required: true | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
bump_version: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Print contexts | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
ENV_CONTEXT: ${{ toJson(env) }} | |
VARS_CONTEXT: ${{ toJson(vars) }} | |
JOB_CONTEXT: ${{ toJson(job) }} | |
STEPS_CONTEXT: ${{ toJson(steps) }} | |
RUNNER_CONTEXT: ${{ toJson(runner) }} | |
SECRETS_CONTEXT: ${{ toJson(secrets) }} | |
STRATEGY_CONTEXT: ${{ toJson(strategy) }} | |
MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
NEEDS_CONTEXT: ${{ toJson(needs) }} | |
INPUTS_CONTEXT: ${{ toJson(inputs) }} | |
run: | | |
echo "******************************" | |
echo "github:" "$GITHUB_CONTEXT" | |
echo "******************************" | |
echo "env:" "$ENV_CONTEXT" | |
echo "******************************" | |
echo "vars:" "$VARS_CONTEXT" | |
echo "******************************" | |
echo "job:" "$JOB_CONTEXT" | |
echo "******************************" | |
echo "steps:" "$STEPS_CONTEXT" | |
echo "******************************" | |
echo "runner:" "$RUNNER_CONTEXT" | |
echo "******************************" | |
echo "secrets:" "$SECRETS_CONTEXT" | |
echo "******************************" | |
echo "strategy:" "$STRATEGY_CONTEXT" | |
echo "******************************" | |
echo "matrix:" "$MATRIX_CONTEXT" | |
echo "******************************" | |
echo "needs:" "$NEEDS_CONTEXT" | |
echo "******************************" | |
echo "inputs:" "$INPUTS_CONTEXT" | |
echo "******************************" | |
- uses: actions/checkout@v3 | |
- run: mkdir -p protocol/cargo-cache | |
- run: mkdir -p protocol/target | |
- run: mkdir -p node_modules | |
- run: mkdir -p ~/.cache/Cypress | |
- name: Restore cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
protocol/cargo-cache | |
protocol/target | |
node_modules | |
~/.cache/Cypress | |
# note that restoring a cache in github is a pain. The trailing '-' matches any string after the '-', therefore 'abc-' would match a cache named 'abc-1234' or 'abc-5678', etc. | |
# the problem is 'abc-' will not match a cache named 'abc'! So if you're using wildcard cache name selectors like this, you need a field that changes as the suffix to become the wildcard | |
# here we're setting the key to an unused cache key so it falls back to the wildcard selector in `restore-keys` | |
key: some-unused-cache-key | |
restore-keys: | | |
project-cache-${{ runner.os }}-${{ runner.arch }}- | |
- run: ls -la ~/.cache/Cypress || true | |
- run: ls -la protocol/cargo-cache || true | |
- run: ls -la protocol/target/ink || true | |
- run: ls -la node_modules || true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
- run: npm i -g npm@$(cat package.json | jq -r .engines.npm) | |
- run: npm ci | |
- run: npm run build -w @prosopo/scripts | |
- run: npm run build -w @prosopo/protocol-dev | |
- name: Bump version | |
env: | |
GITHUB_TOKEN: ${{ secrets.PROSOPONATOR_PAT }} | |
run: | | |
# make a new branch for the version changes | |
git switch -c bump-version-${{ github.event.inputs.version }} | |
# make the version changes | |
npm run version ${{ github.event.inputs.version }} | |
# rebuild typechain | |
npm run build:typechain | |
# lint | |
npm run lint:fix | |
# set the author in git | |
git config user.name "prosoponator[bot]" | |
git config user.email "[email protected]" | |
# commit the version changes | |
git add . | |
git commit -m "Bump version to ${{ github.event.inputs.version }}" | |
# push version changes | |
git push --set-upstream origin bump-version-${{ github.event.inputs.version }} | |
# create a PR for the release | |
gh pr create --base main --title "Release ${{ github.event.inputs.version }}" --fill |