name: "publish"
on:
push:
tags: ["v[0-9]+.[0-9]+.[0-9]+*"]
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
CARGO_TERM_COLOR: always
RUST_TOOLCHAIN: 1.94.1
jobs:
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
- name: Install target
run: |
rustup update
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
- name: release
run: |
cargo build --release --target=aarch64-apple-darwin
mv target/aarch64-apple-darwin/release/httpstat ./httpstat
tar -czvf httpstat-darwin-arm64.tar.gz httpstat
cargo build --release --target=x86_64-apple-darwin
mv target/x86_64-apple-darwin/release/httpstat ./httpstat
tar -czvf httpstat-darwin-x86_64.tar.gz httpstat
ls -lh httpstat*.gz
./.github/workflows/upload_asset.sh ./httpstat-darwin-arm64.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./httpstat-darwin-x86_64.tar.gz $GITHUB_TOKEN
linux-musl-x86:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: release
uses: addnab/docker-run-action@v3
with:
image: clux/muslrust:${{ env.RUST_TOOLCHAIN }}-stable
options: -v ${{ github.workspace }}:/volume
run: |
make release
mv target/x86_64-unknown-linux-musl/release/httpstat ./httpstat
ls -lh httpstat
- name: Upload Assets
run: |
tar -czvf httpstat-linux-musl-x86_64.tar.gz httpstat
ls -lh httpstat*.gz
./.github/workflows/upload_asset.sh ./httpstat-linux-musl-x86_64.tar.gz $GITHUB_TOKEN
linux-musl-aarch64:
runs-on: ubuntu-22.04-arm
steps:
- uses: actions/checkout@v4
- name: release
uses: addnab/docker-run-action@v3
with:
image: clux/muslrust:${{ env.RUST_TOOLCHAIN }}-stable
options: -v ${{ github.workspace }}:/volume
run: |
make release
mv target/aarch64-unknown-linux-musl/release/httpstat ./httpstat
ls -lh httpstat
- name: Upload Assets
run: |
tar -czvf httpstat-linux-musl-aarch64.tar.gz httpstat
ls -lh httpstat*.gz
./.github/workflows/upload_asset.sh ./httpstat-linux-musl-aarch64.tar.gz $GITHUB_TOKEN
windows:
runs-on: windows-latest
name: ${{ matrix.target }}
env:
CFG_RELEASE_CHANNEL: ${{ matrix.cfg_release_channel }}
strategy:
matrix:
target: [x86_64-pc-windows-msvc]
steps:
- name: disable git eol translation
run: git config --global core.autocrlf false
- uses: actions/checkout@v4
- name: Install Rustup using win.rustup.rs
run: |
# Disable the download progress bar which can cause perf issues
$ProgressPreference = "SilentlyContinue"
Invoke-WebRequest https://win.rustup.rs/ -OutFile rustup-init.exe
.\rustup-init.exe -y --default-host=x86_64-pc-windows-msvc --default-toolchain=none
del rustup-init.exe
rustup target add ${{ matrix.target }}
shell: powershell
- name: Add mingw64 to path for x86_64-gnu
run: echo "C:\msys64\mingw64\bin" >> $GITHUB_PATH
if: matrix.target == 'x86_64-pc-windows-gnu' && matrix.channel == 'nightly'
shell: bash
- name: Set Perl environment variables
if: runner.os == 'Windows'
run: |
echo "PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
echo "OPENSSL_SRC_PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
- name: Run cargo release
shell: bash
run: |
cargo --version
cargo build --release
mv target/release/httpstat.exe ./httpstat.exe
- name: Zip
shell: powershell
run: |
Compress-Archive -Path httpstat.exe -Destination httpstat-windows.exe.zip
- name: Upload asset
shell: bash
run: |
./.github/workflows/upload_asset.sh ./httpstat-windows.exe.zip $GITHUB_TOKEN