rusty_hub/.github/workflows/rust.yml

59 lines
2.2 KiB
YAML

name: build
on:
workflow_dispatch:
push:
branches: [ main, master ]
paths:
- '.github/**'
- 'rusty_hub_egui/**'
- 'unity_hub_lib/**'
pull_request:
branches: [ main, master ]
env:
CARGO_TERM_COLOR: always
jobs:
build-unix:
runs-on: ubuntu-latest
steps:
- name: Hack sources.list
run: sudo sed -i 's|http://azure.archive.ubuntu.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/sources.list
- name: Update res
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libatk1.0-dev librust-gdk-sys-dev
- run: rustup toolchain install stable --profile minimal
- uses: Swatinem/rust-cache@v2
with:
# An explicit cache key that is used instead of the automatic `job`-based
# cache key and is thus stable across jobs.
# Default: empty
shared-key: ""
# An additional cache key that is added alongside the automatic `job`-based
# cache key and can be used to further differentiate jobs.
# Default: empty
key: ""
# A whitespace separated list of env-var *prefixes* who's value contributes
# to the environment cache key.
# The env-vars are matched by *prefix*, so the default `RUST` var will
# match all of `RUSTC`, `RUSTUP_*`, `RUSTFLAGS`, `RUSTDOC_*`, etc.
# Default: "CARGO CC CFLAGS CXX CMAKE RUST"
env-vars: ""
# The cargo workspaces and target directory configuration.
# These entries are separated by newlines and have the form
# `$workspace -> $target`. The `$target` part is treated as a directory
# relative to the `$workspace` and defaults to "target" if not explicitly given.
# Default: ". -> target"
workspaces: ""
# Determines if the cache should be saved even when the workflow has failed.
# Default: "false"
cache-on-failure: ""
- uses: actions/checkout@v2
- name: Build
run: cd rusty_hub_egui && cargo build --verbose
- uses: actions/upload-artifact@v3
with:
name: upload executable
path: rusty_hub_egui/target/release/rusty_hub_egui