feat(rust): improve xtask output #2473
Workflow file for this run
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: CI - Rust | |
on: | |
push: | |
paths: | |
# NOTE: GitHub Actions do not allow using YAML references, the same path | |
# list is used below for the pull request event. Keep both lists in sync!! | |
# this file as well | |
- .github/workflows/ci-rust.yml | |
# any change in the rust subfolder | |
- rust/** | |
# except Markdown documentation | |
- "!rust/**.md" | |
# except the packaging | |
- "!rust/package/**" | |
# except the DBus configuration | |
- "!rust/share/**" | |
pull_request: | |
paths: | |
# NOTE: GitHub Actions do not allow using YAML references, the same path | |
# list is used above for the push event. Keep both lists in sync!! | |
# this file as well | |
- .github/workflows/ci-rust.yml | |
# any change in the rust subfolder | |
- rust/** | |
# except Markdown documentation | |
- "!rust/**.md" | |
# except the packaging | |
- "!rust/package/**" | |
# except the DBus configuration | |
- "!rust/share/**" | |
# allow running manually | |
workflow_dispatch: | |
jobs: | |
rust_ci: | |
runs-on: ubuntu-latest | |
env: | |
COVERAGE: 1 | |
defaults: | |
run: | |
working-directory: ./rust | |
strategy: | |
fail-fast: false | |
matrix: | |
distro: [ "tumbleweed" ] | |
container: | |
image: registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby | |
options: --security-opt seccomp=unconfined | |
steps: | |
- name: Git Checkout | |
uses: actions/checkout@v4 | |
- name: Configure and refresh repositories | |
# disable unused repositories to have faster refresh | |
run: zypper modifyrepo -d repo-non-oss repo-openh264 repo-update && ( zypper ref || zypper ref || zypper ref ) | |
- name: Install Rust development files | |
run: zypper --non-interactive install rustup | |
- name: Install required packages | |
run: zypper --non-interactive install | |
clang-devel | |
dbus-1-daemon | |
jq | |
libopenssl-3-devel | |
openssl-3 | |
pam-devel | |
python-langtable-data | |
timezone | |
xkeyboard-config | |
- name: Install Rust toolchains | |
run: rustup toolchain install stable | |
- name: Run clippy linter | |
run: cargo clippy | |
- name: Run rustfmt | |
run: cargo fmt --all -- --check | |
- name: Install cargo-binstall | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-binstall | |
- name: Install Tarpaulin (for code coverage) | |
run: | | |
echo "$PWD/share/bin" >> $GITHUB_PATH | |
cargo-binstall --no-confirm cargo-tarpaulin | |
- name: Run the tests | |
run: cargo tarpaulin --out xml -- --nocapture | |
# send the code coverage for the Rust part to the coveralls.io | |
- name: Coveralls GitHub Action | |
uses: coverallsapp/github-action@v2 | |
with: | |
base-path: ./rust | |
format: cobertura | |
flag-name: rust | |
parallel: true | |
# close the code coverage and inherit the previous coverage for the Ruby and | |
# Web parts (it needs a separate step, the "carryforward" flag can be used | |
# only with the "parallel-finished: true" option) | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel-finished: true | |
carryforward: "service,web" |