trait-kit 0.1.0

Module Standard Interface and Capability Management Center — A lightweight Rust library that provides a standard interface for module definition and Kit capability management.
Documentation
name: Release

on:
  push:
    tags:
      - "v*"

jobs:
  release:
    name: Release Source Tarball
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4

      - name: Create source tarball
        env:
          REPO_NAME: ${{ github.event.repository.name }}
          TAG_NAME: ${{ github.ref_name }}
        run: |
          mkdir -p dist
          git archive --format=tar.gz --prefix="${REPO_NAME}-${TAG_NAME}/" -o dist/"${REPO_NAME}-${TAG_NAME}-src.tar.gz" HEAD

      - name: Upload Release Asset
        uses: softprops/action-gh-release@v1
        with:
          files: dist/*-src.tar.gz
          generate_release_notes: true

  cargo-publish:
    name: Publish to Crates.io
    runs-on: ubuntu-latest
    needs: release
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust
        uses: dtolnay/rust@stable

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