mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-12-19 05:19:42 +08:00
This PR removes the v5 and v4 lts tags from the release scripts. The main branch should always be used to deploy to the latest/next tags and never in the past. Instead, the version branches have the option to deploy to their respective LTS tags.
130 lines
3.9 KiB
YAML
130 lines
3.9 KiB
YAML
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
|
|
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@v4
|
|
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 hi@ionicframework.com
|
|
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
|
|
|
|
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 hi@ionicframework.com
|
|
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
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
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@next/dist/ionic/ionic.esm.js",
|
|
"/npm/@ionic/core@6/css/ionic.bundle.css",
|
|
"/npm/@ionic/core@latest/css/ionic.bundle.css"
|
|
"/npm/@ionic/core@next/css/ionic.bundle.css"
|
|
]}'
|
|
shell: bash
|