Create new release #138
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: "Create new release" | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: "Select the version increment" | |
required: true | |
type: choice | |
options: | |
- major | |
- minor | |
- patch | |
- premajor | |
- preminor | |
- prepatch | |
- prerelease | |
jobs: | |
create-new-release: | |
name: Create new release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".node-version" | |
- name: Setup Yarn | |
uses: volta-cli/action@v4 | |
- name: Setup env | |
run: echo "FONTAWESOME_NPM_AUTH_TOKEN=${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}" > .env | |
- name: Bump version in package.json | |
run: yarn version ${{ github.event.inputs.version }} | |
- name: Extract version from package.json | |
id: extract_version | |
run: | | |
version=$(grep '"version"' package.json | sed -E 's/.*"version": "([^"]+)".*/\1/') | |
echo "Extracted version: $version" | |
echo "::set-output name=version::$version" | |
- name: Create version bump branch | |
run: git checkout -b release/v${{ steps.extract_version.outputs.version }} | |
- name: Initialize mandatory git config | |
uses: fregante/setup-git-user@v2 | |
- name: Commit manifest files | |
id: make-commit | |
run: | | |
git add package.json | |
git commit --message "Update package.json v${{ steps.extract_version.outputs.version }}" | |
echo "::set-output name=commit::$(git rev-parse HEAD)" | |
- name: Publish release branch | |
run: git push origin release/v${{ steps.extract_version.outputs.version }} | |
- name: Merge version update into main branch | |
uses: thomaseizinger/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
head: release/v${{ steps.extract_version.outputs.version }} | |
base: main | |
title: "Merge release/v${{ steps.extract_version.outputs.version }} into main branch" | |
- name: Install dependencies | |
run: yarn install | |
# Build assets | |
- run: yarn build | |
- run: npm pack | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v${{ steps.extract_version.outputs.version }} | |
release_name: Release v${{ steps.extract_version.outputs.version }} | |
body_path: | |
draft: false | |
prerelease: false | |
# Upload assets to the release | |
- name: Upload Release Asset | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./user-interviews-ui-design-system-${{ steps.extract_version.outputs.version }}.tgz | |
asset_name: user-interviews-ui-design-system-${{ steps.extract_version.outputs.version }}.tgz | |
asset_content_type: application/tar+gzip |