Skip to content

Create new release #138

Create new release

Create new release #138

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