waaraawa_ByteGrid/.github/workflows/release.yml

63 lines
1.4 KiB
YAML

name: Release
on:
push:
tags:
- '*'
permissions:
contents: write
id-token: write
attestations: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Run Scorecard preflight
run: npm run check:scorecard
- name: Build
run: npm run build
- name: Prepare release assets
run: |
mkdir -p release
cp packages/obsidian-plugin/main.js release/main.js
cp packages/obsidian-plugin/styles.css release/styles.css
cp manifest.json release/manifest.json
- name: Attest release assets
uses: actions/attest-build-provenance@v2
with:
subject-path: release/*
- name: Ensure GitHub release exists
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release view "${GITHUB_REF_NAME}" ||
gh release create "${GITHUB_REF_NAME}" \
--title "${GITHUB_REF_NAME}" \
--notes "Release ${GITHUB_REF_NAME}"
- name: Upload release assets
env:
GH_TOKEN: ${{ github.token }}
run: gh release upload "${GITHUB_REF_NAME}" release/* --clobber