Skip to content

Update release.yml

Update release.yml #25

Workflow file for this run

name: Release
on:
push:
branches: []
env:
CARGO_TERM_COLOR: always
jobs:
build:
continue-on-error: true
runs-on: ${{ matrix.host_os }}
strategy:
matrix:
target:
- aarch64-apple-darwin
- aarch64-unknown-linux-gnu
- aarch64-unknown-linux-musl
- arm-unknown-linux-gnueabi
- armv7-unknown-linux-musleabihf
- i686-unknown-linux-gnu
- i686-unknown-linux-musl
- x86_64-apple-darwin
- x86_64-unknown-linux-musl
- x86_64-unknown-linux-gnu
include:
- target: aarch64-apple-darwin
host_os: macos-latest
- target: aarch64-unknown-linux-gnu
host_os: ubuntu-latest
cross: true
- target: aarch64-unknown-linux-musl
host_os: ubuntu-latest
cross: true
- target: arm-unknown-linux-gnueabi
host_os: ubuntu-latest
cross: true
- target: armv7-unknown-linux-musleabihf
host_os: ubuntu-latest
cross: true
- target: i686-unknown-linux-gnu
host_os: ubuntu-latest
packages: "gcc-multilib libc6-dev-i386"
- target: i686-unknown-linux-musl
host_os: ubuntu-latest
cross: true
- target: x86_64-apple-darwin
host_os: macos-latest
- target: x86_64-unknown-linux-musl
host_os: ubuntu-latest
packages: "musl-tools"
- target: x86_64-unknown-linux-gnu
host_os: ubuntu-latest
packages: ""
steps:
- uses: actions/checkout@v4
- name: Install deps
if: ${{ contains(matrix.host_os, 'ubuntu') && !matrix.cross }}
run: |
sudo apt-get update -y
sudo apt-get -yq --no-install-suggests --no-install-recommends install ${{ matrix.packages }}
- name: Cache Rust
if: ${{ !matrix.cross }}
uses: Swatinem/rust-cache@v2
with:
prefix-key: v0-rust-build-${{ matrix.target }}
cache-all-crates: true
- name: Cache Docker
uses: satackey/[email protected]
continue-on-error: true
- name: Install cross
if: ${{ matrix.cross }}
run: cargo install cross
- name: Install targets
if: ${{ !matrix.cross }}
run: rustup target add ${{ matrix.target }}
- name: Build
if: ${{ !matrix.cross }}
run: cargo build --release --target ${{ matrix.target }}
- name: Cross build
if: ${{ matrix.cross }}
run: cross build --release --target ${{ matrix.target }}
- name: Pack
run: |
mkdir target/pingpong || rm -rf target/pingpong/*
mv target/${{ matrix.target }}/release/pingpong target/pingpong/pingpong
cp -r config target/pingpong/config
- name: Upload
uses: actions/upload-artifact@v4
with:
name: pingpong-${{ matrix.target }}.zip
path: target/pingpong