segul 0.23.2

An ultrafast and memory-efficient tool for phylogenomics
Documentation
name: Release

on:
  push:
    tags:
      - "*"

jobs:
  linux:
    name: Linux x86_64 GNU
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

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

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: tar czvf segul.tar.gz -C target/release segul

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.tar.gz
          asset_name: segul-Linux-x86_64.tar.gz
          tag: ${{ github.ref }}

  linux_musl:
    name: Linux x86_64 Static
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          target: x86_64-unknown-linux-musl

      - name: Build
        run: |
          sudo apt install musl-tools
          cargo build --release --target x86_64-unknown-linux-musl

      - name: Compress release
        run: tar czvf segul.tar.gz -C target/x86_64-unknown-linux-musl/release segul

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.tar.gz
          asset_name: segul-Linux-musl-x86_64.tar.gz
          tag: ${{ github.ref }}
  
  linux_arm:
    name: Linux arm64 GNU
    runs-on: ubuntu-24.04-arm
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

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

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: tar czvf segul.tar.gz -C target/release segul

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.tar.gz
          asset_name: segul-Linux-arm64.tar.gz
          tag: ${{ github.ref }}

  macos:
    name: macOS x86_64
    runs-on: macos-15-intel
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

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

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: tar czvf segul.tar.gz -C target/release segul

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.tar.gz
          asset_name: segul-macOS-x86_64.tar.gz
          tag: ${{ github.ref }}

  macos_arm:
    name: macOS arm64
    runs-on: macos-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

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

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: tar czvf segul.tar.gz -C target/release segul

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.tar.gz
          asset_name: segul-macOS-arm64.tar.gz
          tag: ${{ github.ref }}

  windows:
    name: Windows x86_64
    runs-on: windows-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

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

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: powershell Compress-Archive target/release/segul.exe segul.zip

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.zip
          asset_name: segul-Windows-x86_64.zip
          tag: ${{ github.ref }}

  windows_arm:
    name: Windows arm64
    runs-on: windows-11-arm
    steps:
      - name: Checkout sources
        uses: actions/checkout@v5

      - name: Install Rustup
        run: |
          curl -LOs https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe
          ./rustup-init.exe -y --default-toolchain stable --no-modify-path
          echo "$env:USERPROFILE/.cargo/bin" >> $env:GITHUB_PATH

      - name: Build
        run: cargo build --release

      - name: Compress release
        run: powershell Compress-Archive target/release/segul.exe segul.zip

      - name: Upload release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: segul.zip
          asset_name: segul-Windows-arm64.zip
          tag: ${{ github.ref }}