🚀 Release #15
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: "🚀 Release" | |
on: | |
workflow_dispatch: | |
inputs: | |
next_version: | |
type: choice | |
description: "How to bump the version?" | |
options: | |
- "major" | |
- "minor" | |
- "patch" | |
concurrency: "release" | |
jobs: | |
install: | |
runs-on: ubuntu-latest | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "📦 Install dependencies" | |
uses: reactgular/cache@v1 | |
with: | |
mode: "install" | |
version: | |
runs-on: ubuntu-latest | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "🔍 Read package.json version" | |
id: version | |
run: | | |
VERSION=$(jq -r .version < package.json) | |
echo "version=${VERSION}" >> $GITHUB_OUTPUT | |
echo "::notice file={package.json},title={Release Version}::Release version: ${VERSION}" | |
outputs: | |
package_version: ${{ steps.version.outputs.version }} | |
lint: | |
runs-on: ubuntu-latest | |
needs: [ install ] | |
if: false | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "💽 Restore node_modules cache" | |
uses: reactgular/cache@v1 | |
with: | |
mode: "restore" | |
- name: "🔨 Lint" | |
run: yarn lint | |
test: | |
runs-on: ubuntu-latest | |
needs: [ install ] | |
if: false | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "💽 Restore node_modules cache" | |
uses: reactgular/cache@v1 | |
with: | |
mode: "restore" | |
- name: "🔨 Test" | |
run: ${{ env.NX }} affected -t test | |
storybooks: | |
runs-on: ubuntu-latest | |
needs: [ install ] | |
if: false | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "💽 Restore node_modules cache" | |
uses: reactgular/cache@main | |
with: | |
mode: "restore" | |
- name: "🔨 Build storybooks" | |
run: yarn build-storybook | |
build: | |
runs-on: ubuntu-latest | |
needs: [ install ] | |
if: false | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "💽 Restore node_modules cache" | |
uses: reactgular/cache@v1 | |
with: | |
mode: "restore" | |
- name: "🔨 Build projects" | |
run: yarn build | |
publish-release: | |
runs-on: ubuntu-latest | |
needs: [ version ] | |
steps: | |
- name: "🚀 Publish release" | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { owner, repo } = context.repo; | |
const tag_name = 'v${{needs.version.outputs.package_version}}'; | |
const {data: release} = await github.rest.repos.generateReleaseNotes({ | |
owner, | |
repo, | |
tag_name | |
}); | |
await github.rest.repos.createRelease({ | |
owner, | |
repo, | |
tag_name, | |
name: release.name, | |
body: release.body | |
}); | |
bump-version: | |
runs-on: ubuntu-latest | |
needs: [ publish-release ] | |
steps: | |
- name: "📥 Checkout code" | |
uses: actions/checkout@v4 | |
- name: "🔍 Bump package.json version" | |
run: | | |
yarn version --no-git-tag-version --${{ github.event.inputs.next_version }} | |
- name: "🔍 Read package.json version" | |
id: version | |
run: | | |
VERSION=$(jq -r .version < package.json) | |
echo "version=${VERSION}" >> $GITHUB_OUTPUT | |
echo "::notice file={package.json},title={Bump Version}::Bump version: ${VERSION}" | |
- name: "🔄 Create Pull Request" | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
commit-message: "chore: bump version to v${{steps.version.outputs.version}}" | |
title: "chore: bump version to v${{steps.version.outputs.version}}" | |
body: "Bumps the version to v${{steps.version.outputs.version}}" | |
branch: "chore/bump-v${{steps.version.outputs.version}}" | |
labels: "release" | |
reviewers: "codemile" | |
assignees: "codemile" | |
draft: true |