Ionicons Production Release #18
Workflow file for this run
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: 'Ionicons Production Release' | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
required: true | |
type: choice | |
description: Which version should be published? | |
options: | |
- patch | |
- minor | |
- major | |
tag: | |
required: true | |
type: choice | |
description: Which npm tag should this be published to? | |
options: | |
- latest | |
jobs: | |
release-ionicons: | |
uses: ./.github/workflows/release-ionicons.yml | |
with: | |
tag: ${{ inputs.tag }} | |
version: ${{ inputs.version }} | |
secrets: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
finalize-release: | |
needs: [release-ionicons] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.IONITRON_TOKEN }} | |
fetch-depth: 0 | |
- name: Configure Identity | |
# Commits from github-actions do not | |
# trigger other GitHub Actions. As a result, | |
# we publish releases from Ionitron instead | |
# so actions run when merging the release branch | |
# back into main. | |
run: | | |
git config user.name ionitron | |
git config user.email [email protected] | |
shell: bash | |
# This ensures the local version of Lerna is installed | |
# and that we do not use the global Lerna version. We currently | |
# rely on functionality that does not exist in newer versions of Lerna. | |
- name: Install root dependencies | |
run: npm ci | |
shell: bash | |
- name: Create GitHub Release | |
run: npx lerna@5 version ${{ inputs.version }} --yes --force-publish='*' --conventional-commits --create-release github | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
shell: bash | |
update-package-lock: | |
# This needs to run after finalize-release | |
# because we also push to the repo in that | |
# job. If these jobs ran in parallel then it is | |
# possible for them to push at the same time. | |
needs: [finalize-release] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Pull the latest version of the reference | |
# branch instead of the revision that triggered | |
# the workflow otherwise we won't get the commit | |
# created in the previous job and this next job | |
# will fail. | |
with: | |
ref: ${{ github.ref }} | |
- name: Configure Identity | |
# Commits from github-actions do not | |
# trigger other GitHub Actions. As a result, | |
# we push from Ionitron instead so actions | |
# run when merging the release branch | |
# back into main. | |
run: | | |
git config user.name ionitron | |
git config user.email [email protected] | |
shell: bash | |
# Lerna does not automatically bump versions | |
# of Ionicons dependencies that have changed, | |
# so we do that here. | |
- name: Bump Package Lock | |
run: | | |
npx lerna@5 exec "npm install --package-lock-only --legacy-peer-deps" | |
git add . | |
git commit -m "chore(): update package lock files" | |
git push | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
shell: bash |