ci/cd #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Install Rustfmt | |
run: rustup component add rustfmt | |
- name: Check Rustfmt | |
run: cargo fmt -- --check | |
build: | |
runs-on: ubuntu-latest | |
needs: fmt | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
name: Add caching | |
- name: Install Clippy | |
run: rustup component add clippy | |
- name: Setup gtk4-layer-shell | |
run: | | |
echo "Updating packages" | |
sudo apt update | |
echo "Installing dependencies" | |
sudo apt install -y \ | |
meson \ | |
ninja-build \ | |
libwayland-dev \ | |
libgtk-4-dev \ | |
gobject-introspection \ | |
libgirepository1.0-dev \ | |
gtk-doc-tools \ | |
python3 \ | |
valac | |
echo "Downloading sources" | |
wget https://github.com/wmww/gtk4-layer-shell/archive/refs/tags/v1.0.2.zip | |
echo "Extracting..." | |
unzip v1.0.2.zip && cd gtk4-layer-shell-1.0.2 | |
echo "Setting up the build environment with Meson, enabling examples, docs, and tests" | |
meson setup -Dexamples=true -Ddocs=true -Dtests=true build | |
echo "Building the project using Ninja" | |
ninja -C build | |
echo "Installing the built project" | |
sudo ninja -C build install | |
echo "Updating the shared library cache" | |
sudo ldconfig | |
- name: Install dependencies | |
run: cargo fetch | |
- name: Run Clippy | |
run: cargo clippy --all-targets -- --deny warnings | |
- name: Build | |
run: cargo build --release | |
- name: Run tests | |
run: cargo test --verbose |