Skip to content

Build and run tests #28

Build and run tests

Build and run tests #28

Workflow file for this run

name: Build and run tests
on:
push:
branches:
- master
pull_request:
branches:
- "**" # target all branches
schedule:
- cron: '15 0 * * *' # every day at 00:15 UTC
env:
CARGO_TERM_COLOR: always
RUST_LOG: debug
RUST_BACKTRACE: full
jobs:
build_ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
with:
submodules: recursive
- name: Update the list of available system packages
run: sudo apt-get update
- name: Install build dependencies
run: sudo apt-get install -yqq --no-install-recommends build-essential
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version-file: './build-tools/.python-version'
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
--default-toolchain $(python ./build-tools/cargo-info-extractor/extract.py --rust-version)
- name: Build
run: cargo build --locked
- name: Run tests
run: cargo test --all
- name: Run doc tests
run: cargo test --doc
build_macos:
runs-on: macos-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version-file: './build-tools/.python-version'
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
--default-toolchain $(python ./build-tools/cargo-info-extractor/extract.py --rust-version)
- name: Build
run: cargo build --locked
- name: Run tests
run: cargo test --all
- name: Run doc tests
run: cargo test --doc
build_windows:
runs-on: windows-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version-file: './build-tools/.python-version'
- name: Install Rust
# Use bash to be able to escape the newline via '\'.
shell: bash
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
--default-toolchain $(python ./build-tools/cargo-info-extractor/extract.py --rust-version)
- name: Build
run: cargo build --locked
- name: Run tests
run: cargo test --all
- name: Run doc tests
run: cargo test --doc