egui-material3 0.0.9

Material Design 3 components for egui with comprehensive theming support
name: Rust Release

env:
  CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

on:
  push:
    tags:
      - v*

jobs:
  build:
    runs-on: ubuntu-latest
    
    # here we use a GitHub Actions _Environment_ that allows for more 
    # control and steps to ensure security of the publishing 
    # process
    # 
    # See https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment
    environment: release

    permissions:
      id-token: write  # required in order to get a signed ID token
      contents: write

    steps:
    - name: Checkout code
      uses: actions/checkout@v4

    - uses: dtolnay/rust-toolchain@stable
    - name: Cache Cargo Registry
      uses: actions/cache@v5
      with:
        path: ~/.cargo/registry
        key: ubuntu-latest-cargo-registry-${{ hashFiles('**/Cargo.toml') }}

    - name: Release to GitHub
      uses: softprops/action-gh-release@v2

    # This action does not exist currently.
    - name: Authenticate with crates.io
      id: auth
      uses: rust-lang/crates-io-auth-action@v1

    - name: Publish to crates.io
      run: cargo publish
      env:
        CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}