Refactoring the web translations #2909
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 | |
python3-openapi_spec_validator | |
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 | |
- name: Generate and validate the OpenAPI specification | |
run: | | |
cargo xtask openapi | |
openapi-spec-validator out/openapi/* | |
# 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" |