# modified from https://github.com/Ebonsignori/obsidian-auto-journal/blob/main/.github/workflows/release.yml # Creates a new GitHub Release when a tag is pushed name: Release permissions: contents: write on: push: tags: - "[0-9]+.[0-9]+.[0-9]+" env: PLUGIN_NAME: quick-nav jobs: release: runs-on: ubuntu-latest steps: - name: Check out Git repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 20 - name: Build and zip id: build run: | tag=${GITHUB_REF#refs/*/} # Set tag as output for following steps echo "tag=$tag" >> $GITHUB_OUTPUT # Update version in manifest.json and package.json jq --arg tag "$tag" '.version = $tag' manifest.json >> tmp.$$.json && mv tmp.$$.json manifest.json jq --arg tag "$tag" '.version = $tag' package.json >> tmp.$$.json && mv tmp.$$.json package.json # Build and zip release npm install npm run build - name: Commit version changes uses: EndBug/add-and-commit@v9 with: default_author: github_actor add: "manifest.json package.json package-lock.json" message: "Release v${{ steps.build.outputs.tag }}" push: "origin HEAD:${{ github.event.repository.default_branch }} --force" # Override existing tag with new tag that has version bump tag: "${{ steps.build.outputs.tag }} --force" tag_push: "--force" - name: Release with files uses: softprops/action-gh-release@v1 with: name: ${{ steps.build.outputs.tag }} body: "*Release of ${{ env.PLUGIN_NAME }} v${{ steps.build.outputs.tag }} auto-created by [release.yml](.github/workflows/release.yml)*" files: | main.js manifest.json