This repository has been archived on 2026-08-27. You can view files and clone it, but cannot push or open issues or pull requests.
gopher64-netplay/.github/workflows/build.yml
2025-01-14 21:08:03 +01:00

149 lines
4.3 KiB
YAML

name: Rust
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.target }}
rustflags: ""
- name: Install SDL2
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: |
cat <<EOF > deb822sources
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble
Components: main multiverse universe
Architectures: amd64
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main multiverse universe
Architectures: amd64
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-updates
Components: main multiverse universe
Architectures: amd64
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-backports
Components: main multiverse universe
Architectures: amd64
Types: deb
URIs: http://ports.ubuntu.com/
Suites: noble
Components: main multiverse universe
Architectures: arm64
Types: deb
URIs: http://ports.ubuntu.com/
Suites: noble-security
Components: main multiverse universe
Architectures: arm64
Types: deb
URIs: http://ports.ubuntu.com/
Suites: noble-updates
Components: main multiverse universe
Architectures: arm64
Types: deb
URIs: http://ports.ubuntu.com/
Suites: noble-backports
Components: main multiverse universe
Architectures: arm64
EOF
sudo mv deb822sources /etc/apt/sources.list.d/ubuntu.sources
sudo dpkg --add-architecture arm64
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo apt-get -y install aptitude
sudo aptitude -y install libsdl2-dev:arm64 g++-aarch64-linux-gnu
- name: Install SDL2
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: |
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo apt-get -y install libsdl2-dev
- name: Set aarch64 linker
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
- name: Build
run: |
cargo build --release -v --target=${{ matrix.target }}
- name: Upload file
uses: actions/upload-artifact@v4
with:
name: gopher64-${{ matrix.target }}
path: target/${{ matrix.target }}/release/gopher64
build-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x86_64-pc-windows-msvc]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.target }}
rustflags: ""
- name: Build
run: |
cargo build --release -v --target=${{ matrix.target }}
- name: Upload file
uses: actions/upload-artifact@v4
with:
name: gopher64-${{ matrix.target }}
path: target/${{ matrix.target }}/release/gopher64.exe
build-macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
target: [x86_64-apple-darwin, aarch64-apple-darwin]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.target }}
rustflags: ""
- name: Build
run: |
cargo build --release -v --target=${{ matrix.target }}
- name: Upload file
uses: actions/upload-artifact@v4
with:
name: gopher64-${{ matrix.target }}
path: target/${{ matrix.target }}/release/gopher64