rmcl 0.6.2

A fully featured Minecraft TUI launcher
name: release

on:
  workflow_dispatch:

permissions:
  contents: write

concurrency:
  group: release
  cancel-in-progress: false

jobs:
  resolve:
    runs-on: ubuntu-latest
    outputs:
      sha: ${{ steps.checkout.outputs.commit }}
    steps:
      - uses: actions/checkout@v6
        id: checkout
        with:
          ref: master

  checks:
    needs: resolve
    uses: ./.github/workflows/checks.yml
    with:
      network-tests: true
      ref: ${{ needs.resolve.outputs.sha }}
    secrets:
      curseforge-api-key: ${{ secrets.CURSEFORGE_API_KEY }}

  prepare:
    needs: [resolve, checks]
    runs-on: ubuntu-latest
    outputs:
      release: ${{ steps.version.outputs.release }}
      tag: ${{ steps.version.outputs.tag }}
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ needs.resolve.outputs.sha }}
          fetch-depth: 0
          fetch-tags: true

      - name: check version
        id: version
        shell: bash
        run: |
          set -euo pipefail

          version=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "rmcl") | .version')
          python3 scripts/release-version.py --check
          python3 scripts/release-version.py "$version"

      - name: create tag
        if: steps.version.outputs.release == 'true'
        env:
          TAG: ${{ steps.version.outputs.tag }}
        run: |
          git config user.name github-actions[bot]
          git config user.email 41898282+github-actions[bot]@users.noreply.github.com
          git tag --annotate "$TAG" --message "Release $TAG"
          git push origin "$TAG"

  publish:
    needs: prepare
    if: needs.prepare.outputs.release == 'true'
    uses: ./.github/workflows/build-release.yml
    with:
      tag: ${{ needs.prepare.outputs.tag }}
    secrets: inherit
    permissions:
      contents: write