murashit_codex-panel/.github/workflows/release.yml
2026-05-16 07:52:39 +09:00

69 lines
1.5 KiB
YAML

name: Release
on:
push:
tags:
- "*.*.*"
permissions:
contents: write
id-token: write
attestations: write
jobs:
release:
name: Build and release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Check release version
run: npm run release:check
env:
RELEASE_VERSION: ${{ github.ref_name }}
- name: Run checks and build
run: npm run check
- name: Generate artifact attestations
uses: actions/attest@v4
with:
subject-path: |
main.js
manifest.json
styles.css
- name: Create GitHub release
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.ref_name }}
run: |
NOTES_FILE=".github/release-notes/$TAG.md"
if [ ! -f "$NOTES_FILE" ]; then
echo "Release notes file is required at $NOTES_FILE"
exit 1
fi
if gh release view "$TAG" >/dev/null 2>&1; then
gh release edit "$TAG" \
--title "$TAG" \
--notes-file "$NOTES_FILE" \
--verify-tag
else
gh release create "$TAG" \
main.js manifest.json styles.css \
--title "$TAG" \
--notes-file "$NOTES_FILE" \
--verify-tag
fi