cargo-nvim 0.1.6

A Neovim plugin for Rust Cargo commands
Documentation
name: Release

on:
  workflow_dispatch:
  push:
    tags:
      - "v[0-9]+.[0-9]+.[0-9]+"

permissions:
  contents: write
  packages: write

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: 1

jobs:
  create-release:
    permissions:
      contents: write
    runs-on: ubuntu-latest
    outputs:
      release_id: ${{ steps.create-release.outputs.id }}
      release_upload_url: ${{ steps.create-release.outputs.upload_url }}
      release_body: "${{ steps.tag.outputs.message }}"

    steps:
      - uses: actions/checkout@v4

      - name: Get version
        id: get_version
        uses: battila7/get-version-action@v2

      - name: Get tag message
        id: tag
        run: |
          git fetch --depth=1 origin "+refs/tags/*:refs/tags/*"
          {
            echo "message<<EOF"
            git tag -l --format='%(contents)' "${{ steps.get_version.outputs.version }}"
            echo "EOF"
          } >> "$GITHUB_OUTPUT"

      - name: Create Release
        id: create-release
        uses: ncipollo/release-action@v1
        with:
          draft: true
          name: ${{ steps.get_version.outputs.version }}
          tag: ${{ steps.get_version.outputs.version }}
          body: "${{ steps.tag.outputs.message }}"

  publish-release:
    permissions:
      contents: write
    runs-on: ubuntu-latest
    needs: [create-release]

    steps:
      - name: Publish Release
        uses: actions/github-script@v7
        env:
          release_id: ${{ needs.create-release.outputs.release_id }}
        with:
          script: |
            await github.rest.repos.updateRelease({
              owner: context.repo.owner,
              repo: context.repo.repo,
              release_id: process.env.release_id,
              draft: false,
              prerelease: false
            })