name: Build artifacts
on:
push:
branches:
- master
jobs:
ubuntu:
name: Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install dependencies
run: sudo apt-get install -y libxkbcommon-dev libxcb-shape0-dev libxcb-xfixes0-dev
- name: Build examples
run: |
cargo build --release --example layout --example gallery
cargo build --release --manifest-path examples/mandlebrot/Cargo.toml
- name: Prepare
run: |
strip target/release/examples/layout target/release/examples/gallery target/release/mandlebrot
mv target/release/mandlebrot target/release/examples/
cp -a res target/release/examples/
- name: Upload
uses: actions/upload-artifact@v2
with:
name: examples-ubuntu
path: |
target/release/examples/layout
target/release/examples/gallery
target/release/examples/mandlebrot
target/release/examples/res/
macos:
name: MacOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Build examples
env:
MACOSX_DEPLOYMENT_TARGET: 10.7
WINIT_LINK_COLORSYNC: 1
run: |
cargo build --release --example layout --example gallery
cargo build --release --manifest-path examples/mandlebrot/Cargo.toml
- name: Prepare
run: |
strip target/release/examples/layout target/release/examples/gallery target/release/mandlebrot
mv target/release/mandlebrot target/release/examples/
cp -a res target/release/examples/
- name: Upload
uses: actions/upload-artifact@v2
with:
name: examples-macOS
path: |
target/release/examples/layout
target/release/examples/gallery
target/release/examples/mandlebrot
target/release/examples/res/
windows:
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Build examples
run: |
cargo build --release --example layout --example gallery
cargo build --release --manifest-path examples/mandlebrot/Cargo.toml
- name: Prepare
run: |
strip target/release/examples/layout.exe target/release/examples/gallery.exe target/release/mandlebrot.exe
mv target/release/mandlebrot.exe target/release/examples/
xcopy res target\release\examples\res /e/k/c/i/y
- name: Upload
uses: actions/upload-artifact@v2
with:
name: examples-windows
path: |
target/release/examples/layout.exe
target/release/examples/gallery.exe
target/release/examples/mandlebrot.exe
target/release/examples/res/