119625d8cSopenharmony_ci# CI Steps
219625d8cSopenharmony_ci#
319625d8cSopenharmony_ci# Considerations
419625d8cSopenharmony_ci# - Easy to debug: show the command being run
519625d8cSopenharmony_ci# - Leverage CI features: Only run individual steps so we can use features like reporting elapsed time per step
619625d8cSopenharmony_ci
719625d8cSopenharmony_ciARGS?=--workspace
819625d8cSopenharmony_ciTOOLCHAIN_TARGET ?=
919625d8cSopenharmony_ciifneq (${TOOLCHAIN_TARGET},)
1019625d8cSopenharmony_ci  ARGS+=--target ${TOOLCHAIN_TARGET}
1119625d8cSopenharmony_ciendif
1219625d8cSopenharmony_ci
1319625d8cSopenharmony_ciMSRV?=1.64.0
1419625d8cSopenharmony_ci
1519625d8cSopenharmony_ci_FEATURES = minimal default wasm full debug release
1619625d8cSopenharmony_ci_FEATURES_minimal = --no-default-features --features "std"
1719625d8cSopenharmony_ci_FEATURES_default =
1819625d8cSopenharmony_ci_FEATURES_wasm = --no-default-features --features "std help usage error-context suggestions" --features "deprecated derive cargo env unicode string unstable-replace"
1919625d8cSopenharmony_ci_FEATURES_full = --features "deprecated derive cargo env unicode string unstable-replace wrap_help"
2019625d8cSopenharmony_ci_FEATURES_next = ${_FEATURES_full} --features unstable-v5
2119625d8cSopenharmony_ci_FEATURES_debug = ${_FEATURES_full} --features debug --features clap_complete/debug
2219625d8cSopenharmony_ci_FEATURES_release = ${_FEATURES_full} --release
2319625d8cSopenharmony_ci
2419625d8cSopenharmony_cicheck-wasm:
2519625d8cSopenharmony_ci	cargo check ${_FEATURES_${@:check-%=%}} ${ARGS}
2619625d8cSopenharmony_ci
2719625d8cSopenharmony_cicheck-%:
2819625d8cSopenharmony_ci	cargo check ${_FEATURES_${@:check-%=%}} --all-targets ${ARGS}
2919625d8cSopenharmony_ci
3019625d8cSopenharmony_cibuild-%:
3119625d8cSopenharmony_ci	cargo test ${_FEATURES_${@:build-%=%}} --all-targets --no-run ${ARGS}
3219625d8cSopenharmony_ci
3319625d8cSopenharmony_citest-%:
3419625d8cSopenharmony_ci	cargo test ${_FEATURES_${@:test-%=%}} ${ARGS}
3519625d8cSopenharmony_ci
3619625d8cSopenharmony_ciclippy-%:
3719625d8cSopenharmony_ci	cargo clippy ${_FEATURES_${@:clippy-%=%}} ${ARGS} --all-targets -- -D warnings -A deprecated
3819625d8cSopenharmony_ci
3919625d8cSopenharmony_citest-ui-%:
4019625d8cSopenharmony_ci	cargo +${MSRV} test --test derive_ui --features derive ${_FEATURES_${@:test-ui-%=%}}
4119625d8cSopenharmony_ci
4219625d8cSopenharmony_cidoc:
4319625d8cSopenharmony_ci	cargo doc --workspace --all-features --no-deps --document-private-items
44