-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Create rust.yml * ci(workflow): add Rust formatting and enhance build steps - Introduced a new job `fmt` to check code formatting with `rustfmt` in the GitHub Actions workflow. - Updated the `build` job to depend on the `fmt` job, ensuring code is properly formatted before building. - Added steps to install Clippy and run it with `--deny warnings`. - Set up installation and build steps for `gtk4-layer-shell` dependencies using Meson and Ninja. - Changed build command to `cargo build --release` for optimized builds. * Update rust.yml
- Loading branch information
Showing
1 changed file
with
97 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
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 |