Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @erubboli @ImplOfAnImpl @OBorce
106 changes: 106 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
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
112 changes: 112 additions & 0 deletions .github/workflows/code_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Static code checks

on:
push:
branches:
- master
pull_request:
branches:
- "**" # target all branches

env:
CARGO_TERM_COLOR: always
RUST_LOG: debug
RUST_BACKTRACE: full

jobs:
static_checks_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 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: Install Clippy
run: rustup component add clippy

- name: Install cargo-deny
run: cargo install cargo-deny --locked

- name: Run checks
run: ./do_checks.sh

static_checks_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: Install Clippy
run: rustup component add clippy

- name: Install cargo-deny
run: cargo install cargo-deny --locked

- name: Run checks
shell: bash
run: ./do_checks.sh

static_checks_windows:
runs-on: windows-latest
steps:
# This prevents git from changing line-endings to crlf, which messes cargo fmt checks
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf

- 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: Install Clippy
run: rustup component add clippy

- name: Install cargo-deny
run: cargo install cargo-deny --locked

- name: Run checks
shell: bash
run: ./do_checks.sh
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/target

.vscode/

.DS_Store

# Python cache
**/__pycache__

# Python compiled files
*.pyc
Loading