Skip to content

Merge pull request #55 from Panini-Devs/dependabot/cargo/sysinfo-tw-0… #61

Merge pull request #55 from Panini-Devs/dependabot/cargo/sysinfo-tw-0…

Merge pull request #55 from Panini-Devs/dependabot/cargo/sysinfo-tw-0… #61

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{ matrix.os }}
env:
DATABASE_URL: "sqlite:database.sqlite"
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
rust: [stable]
steps:
- uses: actions/checkout@v3
- uses: hecrj/setup-rust-action@v2
with:
rust-version: ${{ matrix.rust }}
- uses: Swatinem/rust-cache@v2
with:
# The prefix cache key, this can be changed to start a new cache manually.
# default: "v0-rust"
prefix-key: ""
# A cache key that is used instead of the automatic `job`-based key,
# and is stable over multiple 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: ""
# Additional non workspace directories to be cached, separated by newlines.
cache-directories: ""
# Determines whether workspace `target` directories are cached.
# If `false`, only the cargo registry will be cached.
# default: "true"
cache-targets: "true"
# Determines if the cache should be saved even when the workflow has failed.
# default: "false"
cache-on-failure: "false"
# Determines which crates are cached.
# If `true` all crates will be cached, otherwise only dependent crates will be cached.
# Useful if additional crates are used for CI tooling.
# default: "false"
cache-all-crates: "false"
# Determiners whether the cache should be saved.
# If `false`, the cache is only restored.
# Useful for jobs where the matrix is additive e.g. additional Cargo features,
# or when only runs from `master` should be saved to the cache.
# default: "true"
save-if: "true"
# Specifies what to use as the backend providing cache
# Can be set to either "github" or "buildjet"
# default: "github"
cache-provider: "github"
- name: Update APT Cache
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update
- name: Install 'libatk1.0-dev' on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y libatk1.0-dev
- name: Install 'libgtk-3-dev' on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y libgtk-3-dev
- name: Install SQLx CLI
run: cargo install sqlx-cli
- name: Run migrations
run: sqlx database setup
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose