bader 0.5.0

Multi-threaded Bader Charge Analysis
Documentation
name: release

on:
  push:
    branches:
      - '!master'
    tags:
      - 'v*'
      - '!v*-*'

env:
  RUST_BACKTRACE: 1

jobs:
  build-linux:
    name: Build (linux)
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - name: Install target
      run: rustup update && rustup target add x86_64-unknown-linux-musl
    - name: Build
      run: cargo build --verbose --release --target x86_64-unknown-linux-musl
    - name: Upload action assest
      uses: actions/upload-artifact@v7
      with:
        name: bca-x86_64-linux
        path: target/x86_64-unknown-linux-musl/release/bca
  build-windows:
    name: Build (windows)
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v6
    - name: Build
      run: cargo build --verbose --release
    - name: Upload action assest
      uses: actions/upload-artifact@v7
      with:
        name: bca-x86_64-windows.exe
        path: target/release/bca.exe
  build-macos:
    name: Build (macos)
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v6
    - name: Install target
      run: rustup update && rustup target add aarch64-apple-darwin
    - name: Build Intel
      run: cargo build --verbose --release
    - name: Build Apple Silicon
      run: cargo build --verbose --release --target aarch64-apple-darwin
    - name: Upload action assest Intel
      uses: actions/upload-artifact@v7
      with:
        name: bca-x86_64-macos
        path: target/release/bca
    - name: Upload action assest Apple Silicon
      uses: actions/upload-artifact@v7
      with:
        name: bca-aarch64-macos
        path: target/release/bca
  release:
    name: Create GitHub Release
    runs-on: ubuntu-latest
    needs: [build-linux, build-macos, build-windows]
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Get Tag
        id: get-release-version
        run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
      - name: Download Linux Artifacts
        uses: actions/download-artifact@v8
        with:
          name: bca-x86_64-linux
      - name: Download Windows Artifacts
        uses: actions/download-artifact@v8
        with:
          name: bca-x86_64-windows.exe
      - name: Download Intel Mac Artifacts
        uses: actions/download-artifact@v8
        with:
          name: bca-x86_64-macos
      - name: Download Apple Silicon Artifacts
        uses: actions/download-artifact@v8
        with:
          name: bca-aarch64-macos
      - name: Create GitHub release
        uses: softprops/action-gh-release@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          tag_name: ${{ steps.get-release-version.outputs.version }}
          body_path: RELEASE.md
          files: |
            bca-x86_64-linux
            bca-x86_64-windows.exe
            bca-x86_64-macos
            bca-aarch64-macos
  publish:
    name: Publish to crates.io
    runs-on: ubuntu-latest
    needs: release
    steps:
    - uses: actions/checkout@v6
    - name: Publish crate
      run: cargo publish --verbose --token ${{ secrets.CARGO_PUBLISH_TOKEN }}