intspan 0.8.7

Command line tools for IntSpan related bioinformatics operations
Documentation
name: Publish

on:
  push:
    tags:
      - '*'

# We need this to be able to create releases.
permissions:
  contents: write

jobs:
  linux-gnu:
    runs-on: ubuntu-latest
    steps:
      - uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable
          targets: x86_64-unknown-linux-gnu
      - uses: goto-bus-stop/setup-zig@v2
      - name: Install cargo-zigbuild
        run: cargo install cargo-zigbuild
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Build
        run: cargo zigbuild --verbose --release --target x86_64-unknown-linux-gnu.2.17
      - name: Create tarball
        run: tar cvfz intspan.tar.gz --transform 's|.*/||' target/x86_64-unknown-linux-gnu/release/spanr target/x86_64-unknown-linux-gnu/release/rgr target/x86_64-unknown-linux-gnu/release/linkr
        shell: bash
      - name: Upload binaries to releases
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: intspan.tar.gz
          asset_name: intspan-x86_64-unknown-linux-gnu.tar.gz
          tag: ${{ github.ref }}
          overwrite: true
  linux-musl:
    runs-on: ubuntu-latest
    steps:
      - uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable
          targets: x86_64-unknown-linux-musl
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Build
        run: cargo build --verbose --release --target x86_64-unknown-linux-musl
      - name: Create tarball
        run: tar cvfz intspan.tar.gz --transform 's|.*/||' target/x86_64-unknown-linux-musl/release/spanr target/x86_64-unknown-linux-musl/release/rgr target/x86_64-unknown-linux-musl/release/linkr
        shell: bash
      - name: Upload binaries to releases
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: intspan.tar.gz
          asset_name: intspan-x86_64-unknown-linux-musl.tar.gz
          tag: ${{ github.ref }}
          overwrite: true
  macos:
    runs-on: macOS-latest
    steps:
      - uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Build
        env:
          MACOSX_DEPLOYMENT_TARGET: 10.12
        run: cargo build --verbose --release
      - name: Create tarball
        run: |
          cd target/release
          tar cvfz ../../intspan.tar.gz spanr rgr linkr
        shell: bash
      - name: Upload binaries to releases
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: intspan.tar.gz
          asset_name: intspan-x86_64-apple-darwin.tar.gz
          tag: ${{ github.ref }}
          overwrite: true
  windows:
    runs-on: windows-latest
    steps:
      - uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Enable static CRT linkage
        run: |
          mkdir .cargo
          echo '[target.x86_64-pc-windows-msvc]' >> .cargo/config
          echo 'rustflags = ["-Ctarget-feature=+crt-static"]' >> .cargo/config
      - name: Build
        run: cargo build --verbose --release
      - name: Create zip
        run: Compress-Archive -DestinationPath ./intspan.zip -Path ./target/release/spanr.exe,./target/release/rgr.exe,./target/release/linkr.exe
        shell: powershell
      - name: Upload binaries to releases
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: intspan.zip
          asset_name: intspan-x86_64-pc-windows-msvc.zip
          tag: ${{ github.ref }}
          overwrite: true