1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00
unleash.unleash/.github/workflows/publish-new-version.yaml
Gastón Fournier 97ef03d0c2
chore: automate release actions (#7070)
## About the changes
Automate some of our release steps in the same workflow. This gives us
the ability to opt-out some of the jobs which allows us to release
patches to older versions without setting that patch as the latest
version (currently not covering docker publish but if this test works
successfully we might include it as well).

This comes from tests in our enterprise repository.
2024-05-17 10:53:24 +02:00

118 lines
3.8 KiB
YAML

name: Run npm version and push tags
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
id-token: write
on:
workflow_dispatch:
inputs:
version:
description: What version number would you like to use? The version number should be **without** a leading `v`, e.g. `5.7.1` or `6.2.4`.
bump-main:
description: Should we bump the package.json main version?
required: true
type: boolean
default: true
update-version-function:
description: Should we update the version function to use this version?
required: true
type: boolean
default: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PUSH_TOKEN }}
- name: Set up git-cliff
uses: kenji-miyake/setup-git-cliff@v2
- name: setup git config
run: |
git config user.name "Github Actions Bot"
git config user.email "<>"
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- if: ${{ endsWith(github.event.inputs.version, '0') }}
run: |
PREV_COMMIT=$(git rev-list --tags --max-count=1)
echo PREV=$(git describe --tags ${PREV_COMMIT}) >> $GITHUB_ENV
- if: ${{ !endsWith(github.event.inputs.version, '0') }}
run: echo PREV=$(git describe --abbrev=0) >> $GITHUB_ENV
- name: Generate changelog if not pre-release
continue-on-error: true
if: ${{ !contains(github.event.inputs.version, '-') }}
env:
PREV: ${{ env.PREV }}
run: |
git-cliff ${PREV}..HEAD --tag v${{ github.event.inputs.version }} --prepend CHANGELOG.md
git commit -am "docs: Update CHANGELOG.md"
- run: yarn install --frozen-lockfile --ignore-scripts
- name: npm version
run: |
npm version ${{ github.event.inputs.version }} --ignore-scripts
git push origin ${{ github.ref_name }}
git push --tags
env:
CI: true
update-main-version:
needs: build
if: ${{ github.event.inputs.bump-main == 'true' }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- name: checkout main branch
uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0
token: ${{ secrets.GH_PUSH_TOKEN }}
- name: setup git config
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"
- name: upgrade package version
run: |
jq --arg version "${{ github.event.inputs.version }}+main" '.version=$version' package.json > package.json.tmp
mv package.json.tmp package.json
git add package.json
git commit -m "chore: bump version to ${{ github.event.inputs.version }}+main"
git push origin main
update-version-checker:
needs: build
if: ${{ github.event.inputs.update-version-function == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Authenticate Google IAM
uses: 'google-github-actions/auth@v2'
with:
workload_identity_provider: 'projects/340004706233/locations/global/workloadIdentityPools/gh-actions-pool/providers/github-actions-oidc-unleash'
service_account: 'versionUpdateSa@metrics-304612.iam.gserviceaccount.com'
token_format: 'access_token'
- name: Update version checker
uses: 'Unleash/update-version-action@v0'
with:
version: ${{ github.event.inputs.version }}
distribution: 'oss'