67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
name: rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- name: Setup Ccache
|
|
uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
|
|
with:
|
|
key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }}
|
|
- uses: dtolnay/rust-toolchain@881ba7bf39a41cda34ac9e123fb41b44ed08232f # nightly
|
|
- name: Install Dependencies
|
|
run: |
|
|
rustup component add \
|
|
rust-src \
|
|
rustfmt \
|
|
clippy \
|
|
--toolchain nightly-x86_64-unknown-linux-gnu
|
|
sudo apt-get update
|
|
sudo apt-get install \
|
|
gcc \
|
|
gobject-introspection \
|
|
gtk-doc-tools \
|
|
libcairo2-dev \
|
|
libchafa-dev \
|
|
libfreetype6-dev \
|
|
libgirepository1.0-dev \
|
|
libglib2.0-dev \
|
|
libgraphite2-dev \
|
|
libicu-dev \
|
|
libpng-dev \
|
|
pkg-config \
|
|
zlib1g-dev \
|
|
bindgen
|
|
- name: Setup Python
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: '3.12'
|
|
- name: Install Python Dependencies
|
|
run: pip3 install -r .ci/requirements.txt --require-hashes
|
|
- name: Setup Meson
|
|
run: |
|
|
ccache --version
|
|
meson setup build \
|
|
-Dauto_features=enabled \
|
|
-Dgraphite=enabled \
|
|
-Doptimization=2 \
|
|
-Dfontations=enabled \
|
|
-Dharfrust=enabled \
|
|
-Dgpu_demo=disabled
|
|
- name: Build
|
|
run: meson compile -Cbuild
|
|
- name: Test
|
|
run: RUST_BACKTRACE=1 meson test --print-errorlogs -Cbuild
|