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 }}