Ionic Production Release #196
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: 'Ionic Production Release' | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
required: true | |
type: choice | |
description: Which version should be published? | |
options: | |
- patch | |
- minor | |
- major | |
- prepatch | |
- preminor | |
- premajor | |
- prerelease | |
tag: | |
required: true | |
type: choice | |
description: Which npm tag should this be published to? | |
options: | |
- latest | |
- next | |
- v5-lts | |
- v4-lts | |
preid: | |
type: choice | |
description: Which prerelease identifier should be used? This is only needed when version is "prepatch", "preminor", "premajor", or "prerelease". | |
options: | |
- '' | |
- alpha | |
- beta | |
- rc | |
- next | |
jobs: | |
release-ionic: | |
permissions: | |
id-token: write | |
uses: ./.github/workflows/release-ionic.yml | |
with: | |
tag: ${{ inputs.tag }} | |
version: ${{ inputs.version }} | |
preid: ${{ inputs.preid }} | |
secrets: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
finalize-release: | |
needs: [release-ionic] | |
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 | |
- name: Create GitHub Release | |
run: lerna version ${{ inputs.version }} --yes --force-publish='*' --conventional-commits --create-release github --preid=${{ inputs.preid }} | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
shell: bash | |
# Lerna does not automatically bump versions | |
# of Ionic dependencies that have changed, | |
# so we do that here. | |
- name: Bump Package Lock | |
run: | | |
lerna exec "npm install --package-lock-only" | |
git add . | |
git commit -m "chore(): update package lock files" | |
git push | |
shell: bash | |
purge-cdn-cache: | |
needs: [release-ionic] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Purge JSDelivr Cache | |
run: | | |
curl -X POST \ | |
https://purge.jsdelivr.net/ \ | |
-H 'cache-control: no-cache' \ | |
-H 'content-type: application/json' \ | |
-d '{ | |
"path": [ | |
"/npm/@ionic/core@6/dist/ionic/ionic.esm.js", | |
"/npm/@ionic/core@latest/dist/ionic/ionic.esm.js", | |
"/npm/@ionic/core@6/css/ionic.bundle.css", | |
"/npm/@ionic/core@latest/css/ionic.bundle.css" | |
]}' | |
shell: bash |