name: Release Obsidian plugin on: push: tags: - '*' jobs: build: runs-on: ubuntu-latest permissions: contents: write id-token: write attestations: write steps: - uses: actions/checkout@v6 - name: Use Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: 'npm' - name: Build plugin run: | npm ci npm run build - name: Check for optional styles id: styles run: | [ -f styles.css ] && echo "exists=true" >> "$GITHUB_OUTPUT" || echo "exists=false" >> "$GITHUB_OUTPUT" - name: Attest build provenance uses: actions/attest@v4 with: subject-path: | main.js ${{ steps.styles.outputs.exists == 'true' && 'styles.css' || '' }} - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | tag="${GITHUB_REF#refs/tags/}" gh release create "$tag" \ --title="$tag" \ --draft \ main.js manifest.json ${{ steps.styles.outputs.exists == 'true' && 'styles.css' || '' }}