The workflow starts with checking out the repo, installing the required dependencies (librust-atk-dev, librust-gdk-dev, the Rust toolchain, and the Mold linker). It then restores the cache stored by Swatinem/rust-cache@v2. This includes the ~/.cargo and ./target directories, which contain installed binaries, the cargo registry, the cache, git dependencies and build artifacts of dependencies.
Next, a build check is ran via cargo build --verbose, followed by clippy checks on the gui-vizia and gui-egui versions of the crate, and finally, the tests are ran via cargo test --workspace --no-default-features --features components --verbose.
As a final step, the Swatinem/rust-cache@v2 workflow updates the aforementioned cache for re-use by the next job.
In parallel, a rustfmt check is ran via cargo fmt --all --check. This ensures that all of the Rust code is formatted with cargo fmt.