vanikey 1.0.0

A simple command-line vanity npub generator for Nostr
Documentation
name: Release

on:
  workflow_dispatch:

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: dtolnay/rust-toolchain@stable

      - name: Get version from Cargo.toml
        id: version
        run: |
          version=$(grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
          echo "version=$version" >> "$GITHUB_OUTPUT"

      - name: Check tag doesn't already exist
        run: |
          if git rev-parse "v${{ steps.version.outputs.version }}" >/dev/null 2>&1; then
            echo "Error: Tag v${{ steps.version.outputs.version }} already exists"
            exit 1
          fi

      - name: Run tests
        run: cargo test

      - name: Dry run publish
        run: cargo publish --dry-run

      - name: Create git tag
        run: |
          git tag "v${{ steps.version.outputs.version }}"
          git push origin "v${{ steps.version.outputs.version }}"

      - name: Publish to crates.io
        run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}

      - name: Create GitHub release
        env:
          GH_TOKEN: ${{ github.token }}
        run: gh release create "v${{ steps.version.outputs.version }}" --title "v${{ steps.version.outputs.version }}" --generate-notes