Skip to content

fix: add missing fi statement to release type determination #3

fix: add missing fi statement to release type determination

fix: add missing fi statement to release type determination #3

name: Create Release
on:
push:
branches:
- main
tags:
- v*.*.*
workflow_dispatch:
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: yarn
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Determine release type
id: release_type
run: |
if [[ "${GITHUB_REF_NAME}" == "main" ]]; then
echo "type=latest" >> $GITHUB_OUTPUT
SHORT_SHA=$(git rev-parse --short HEAD)
echo "tag_name=$SHORT_SHA" >> $GITHUB_OUTPUT
elif [[ "${GITHUB_REF_NAME}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "type=release" >> $GITHUB_OUTPUT
echo "tag_name=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
else
echo "type=skip" >> $GITHUB_OUTPUT
fi
- name: Build all
run: yarn build
- name: Replace version placeholder in dist/*.js
if: steps.release_type.outputs.type != 'skip'
run: |
VERSION="${{ steps.release_type.outputs.tag_name }}"
for f in dist/*.js; do
sed -i "s/{VERSION_PLACEHOLDER}/$VERSION/g" "$f"
done
- name: Generate release notes
id: release_notes
if: steps.release_type.outputs.type != 'skip'
run: |
TYPE="${{ steps.release_type.outputs.type }}"
TAG="${{ steps.release_type.outputs.tag_name }}"
if [[ "$TYPE" == "release" ]]; then
NOTES=$(git log -1 --pretty=format:"%s%n%n%b")
else
NOTES=$(git log -10 --pretty=format:"- %s (%h)")
fi
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$NOTES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create GitHub Release
if: steps.release_type.outputs.type != 'skip'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.release_type.outputs.tag_name }}
name: ${{ steps.release_type.outputs.type == 'release' && 'Release' || 'Latest Version' }} ${{ steps.release_type.outputs.tag_name }}
body: ${{ steps.release_notes.outputs.body }}
files: dist/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}