74 lines
2.2 KiB
YAML
74 lines
2.2 KiB
YAML
name: Rust professionalization check
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'rust-toolchain.toml'
|
|
- 'adk-rust/crates/detmir-core/**'
|
|
- 'adk-rust/crates/detmir-portal/**'
|
|
- 'scripts/check_private_config_guard.sh'
|
|
- 'scripts/check_portal_contract_sync.mjs'
|
|
- '.github/workflows/rust-professionalization-check.yml'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
rust-check:
|
|
name: changed Rust crates smoke
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 40
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install pinned Rust toolchain
|
|
run: |
|
|
rustup toolchain install 1.94.0 --profile minimal --component rustfmt --component clippy
|
|
rustup override set 1.94.0
|
|
rustup show active-toolchain
|
|
cargo +1.94.0 --version
|
|
rustc +1.94.0 --version
|
|
|
|
- name: Cargo fmt check
|
|
working-directory: adk-rust
|
|
run: cargo +1.94.0 fmt --all -- --check
|
|
|
|
- name: Test detmir-core
|
|
working-directory: adk-rust
|
|
run: cargo +1.94.0 test -p detmir-core
|
|
|
|
- name: Test detmir-portal
|
|
working-directory: adk-rust
|
|
run: cargo +1.94.0 test -p detmir-portal
|
|
|
|
- name: Clippy detmir-core
|
|
working-directory: adk-rust
|
|
run: cargo +1.94.0 clippy -p detmir-core --all-targets -- -D warnings
|
|
|
|
- name: Clippy detmir-portal with captured log
|
|
working-directory: adk-rust
|
|
run: |
|
|
set +e
|
|
cargo +1.94.0 clippy -p detmir-portal --all-targets -- -D warnings > ../detmir-portal-clippy.log 2>&1
|
|
status=$?
|
|
echo "clippy_exit_status=${status}" > ../detmir-portal-clippy-status.txt
|
|
tail -n 80 ../detmir-portal-clippy.log
|
|
exit ${status}
|
|
|
|
- name: Upload detmir-portal clippy log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: detmir-portal-clippy-log
|
|
path: |
|
|
detmir-portal-clippy.log
|
|
detmir-portal-clippy-status.txt
|
|
|
|
- name: Private config guard
|
|
run: bash scripts/check_private_config_guard.sh
|
|
|
|
- name: Portal contract sync
|
|
run: node scripts/check_portal_contract_sync.mjs
|