rlumod 1.0.0

Safe, no_std matrix updates and linear solves using the LUmod algorithm
Documentation
name: Release

on:
  push:
    tags: ["v*"]

permissions:
  contents: read

concurrency:
  group: release-${{ github.ref }}
  cancel-in-progress: false

jobs:
  package:
    name: Verify and package crate
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - name: Check out repository
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          persist-credentials: false
      - name: Install Rust stable
        run: rustup toolchain install stable --profile minimal
      - name: Verify tag matches crate version
        shell: bash
        run: |
          crate_version="$(cargo +stable metadata --no-deps --format-version 1 | jq -r '.packages[0].version')"
          test "${GITHUB_REF_NAME}" = "v${crate_version}"
      - name: Run release tests
        run: cargo +stable test --all-features --release
      - name: Build and verify package
        run: cargo +stable package
      - name: Upload crate
        uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
        with:
          name: crate
          path: target/package/*.crate
          if-no-files-found: error
          retention-days: 1

  release:
    name: Create GitHub release
    needs: package
    runs-on: ubuntu-latest
    timeout-minutes: 10
    permissions:
      contents: write
    steps:
      - name: Download crate
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
        with:
          name: crate
          path: dist
      - name: Create GitHub release
        env:
          GH_TOKEN: ${{ github.token }}
          GH_REPO: ${{ github.repository }}
        run: gh release create "${GITHUB_REF_NAME}" dist/*.crate --generate-notes --verify-tag