Skip to content

Release

Release #266

Workflow file for this run

---
name: Release
on:
workflow_dispatch:
permissions:
contents: read
jobs:
create_release:
name: Create Release
runs-on: ubuntu-24.04
permissions:
contents: write
issues: write
pull-requests: write
steps:
- name: Create GitHub App Token
uses: actions/[email protected]
id: app_token
with:
app-id: ${{ secrets.BOT_GH_APP_ID }}
private-key: ${{ secrets.BOT_GH_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: |
${{ github.event.repository.name }}
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ steps.app_token.outputs.token }}
- name: Get GitHub App User ID
id: get_user_id
run: echo "user_id=$(gh api "/users/${{ steps.app_token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app_token.outputs.token }}
- name: Set up Git
run: |
git config --global user.name '${{ steps.app_token.outputs.app-slug }}[bot]'
git config --global user.email '${{ steps.get_user_id.outputs.user_id }}+${{ steps.app_token.outputs.app-slug }}[bot]@users.noreply.github.com'
git config --global commit.gpgsign false
git config --global commit.signoff true
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: 'lts/*'
- name: Cache npm global packages
uses: actions/[email protected]
with:
path: ~/.npm
key: ${{ runner.os }}-npm-global-${{ hashFiles('**/release.yml') }}
restore-keys: |
${{ runner.os }}-npm-global-
- name: Install semantic-release dependencies
run: |
npm install -g \
[email protected] \
@semantic-release/[email protected] \
@semantic-release/[email protected] \
@semantic-release/[email protected] \
@semantic-release/[email protected] \
@semantic-release/[email protected] \
[email protected] \
[email protected]
- name: Check for existing releases
id: check_releases
env:
GITHUB_TOKEN: ${{ steps.app_token.outputs.token }}
run: |
if [ -z "$(gh release list --limit 1)" ]; then
echo "create_initial=true" >> $GITHUB_OUTPUT
else
echo "create_initial=false" >> $GITHUB_OUTPUT
fi
- name: Create initial release
if: steps.check_releases.outputs.create_initial == 'true'
env:
GITHUB_TOKEN: ${{ steps.app_token.outputs.token }}
run: |
gh release create v0.1.0 --title "🚀 Version 0.1.0" --notes "Initial release"
- name: Semantic Release
if: steps.check_releases.outputs.create_initial == 'false'
env:
GITHUB_TOKEN: ${{ steps.app_token.outputs.token }}
run: |
semantic-release