Skip to content

Release new version #15

Release new version

Release new version #15

Workflow file for this run

name: Release new version
on:
workflow_dispatch:
inputs:
is-major-release:
type: boolean
description: Is this a major release?
required: false
default: false
jobs:
release:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout
uses: actions/checkout@v3
with:
ssh-key: ${{ secrets.RELEASE_DEPLOY_KEY }}
ref: develop
- name: Set up node.js
uses: actions/[email protected]
with:
node-version-file: .nvmrc
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Build
run: npm run build
- name: Test
run: npm run test
- name: Read latest release version from package.json
uses: actions/github-script@v6
id: read-latest-release-version
with:
script: |
const { version } = require('./package.json')
core.info(`Latest release version is ${version}`)
core.setOutput('latestReleaseVersion', version)
- name: Define next release version based on Changelog entries
uses: actions/github-script@v6
id: define-release-version
with:
script: |
const { defineReleaseVersion } = require('./.github/scripts/defineVersion.js')
return defineReleaseVersion({core}, "${{ steps.read-latest-release-version.outputs.latestReleaseVersion }}", './CHANGELOG.md', ${{ inputs.is-major-release }})
- name: Bump package.json and Changelog version
run: |
npm --no-git-tag-version version "${{ fromJson(steps.define-release-version.outputs.result) }}"
npx kacl release
- name: Add tag and push changes
run: |
git config --global user.name 'Automated Release'
git config --global user.email '[email protected]'
git add .
git commit -m "Bump version and update changelog"
git tag -a "${{ fromJson(steps.define-release-version.outputs.result) }}" -m "v${{ fromJson(steps.define-release-version.outputs.result) }}"
git push origin develop
git push origin --tags
- name: build and publish
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc
npm publish
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
tag_name: ${{ fromJson(steps.define-release-version.outputs.result) }}