name : rust_push on : workflow_call : inputs : manifest_path : required : true type : string module_name : required : true type : string commit_message : required : true type : string with_smoke : required : false type : string default : true concurrency : group : standard_rust_push_${{ inputs.module_name }}_${{ github.ref }}_ ${{ contains( inputs.commit_message, '+test' ) || startsWith( inputs.commit_message, 'merge' ) }} cancel-in-progress : true env : RUST_BACKTRACE : 1 CARGO_TERM_COLOR : always WITH_SMOKE : ${{ inputs.with_smoke }} jobs : checkmate: if : contains( inputs.commit_message, '+test' ) || contains( inputs.commit_message, 'merge' ) runs-on: ubuntu-latest steps: - name: Install latest nightly toolchain uses: Wandalen/wretry.action/main@master with: action: actions-rs/toolchain@v1 with: | toolchain : nightly override : true components : clippy attempt_limit: 3 attempt_delay: 10000 - uses: actions/checkout@v3 - name: Install cargo-audit run: cargo install cargo-audit - name: Install cargo-udeps run: cargo install cargo-udeps --locked - name: Set MANIFEST_ROOT_PATH id: rootpath run: echo "::set-output name=path::$(dirname ${{ inputs.manifest_path }})" - name: Build module run: cd ${{ steps.rootpath.outputs.path }} && cargo build && cd - - name: Audit the modules run: make audit continue-on-error: true - name: Generate documentation for the modules run: make doc open=no manifest_path=${{ inputs.manifest_path }} continue-on-error: true - name: Lint the modules run: make lint manifest_path=${{ inputs.manifest_path }} warnings=no continue-on-error: true - name: Check the modules run: make check manifest_path=${{ inputs.manifest_path }} continue-on-error: true - name: Check the modules dependencies run: cargo +nightly udeps --all-targets --manifest-path ${{ inputs.manifest_path }} continue-on-error: true # release: # if: contains( inputs.commit_message, '+test' ) || contains( inputs.commit_message, 'merge' ) # strategy: # fail-fast: false # matrix: # os: [ ubuntu-latest, windows-latest, macos-latest ] # runs-on: ${{ matrix.os }} # steps: # - name: Install latest stable toolchain # uses: Wandalen/wretry.action@master # with: # action: actions-rs/toolchain@v1 # with: | # toolchain : stable # override : true # attempt_limit: 3 # attempt_delay: 10000 # - uses: actions/checkout@v3 # with: # ref: alpha # # - name: Make release build # run: cargo build --manifest-path ${{ inputs.manifest_path }} --release # miri: # if: contains( inputs.commit_message, '+test' ) || contains( inputs.commit_message, 'merge' ) # runs-on: ubuntu-latest # steps: # - name: Install latest nightly toolchain # uses: Wandalen/wretry.action@master # with: # action: actions-rs/toolchain@v1 # with: | # toolchain : nightly # override : true # components : miri # attempt_limit: 3 # attempt_delay: 10000 # - uses: actions/checkout@v3 # with: # ref: alpha # - name: Test with miri # run: cargo miri test --manifest-path ${{ inputs.manifest_path }} will_test : if : contains( inputs.commit_message, '+test' ) || contains( inputs.commit_message, 'merge' ) concurrency : group : standard_rust_push_${{ inputs.module_name }}_${{ github.ref }}_${{ matrix.os }} cancel-in-progress : true strategy : fail-fast : false matrix : os : [ ubuntu-latest, windows-latest, macos-latest ] runs-on : ${{ matrix.os }} steps : - name : Install latest stable toolchain uses : Wandalen/wretry.action/main@master with : action : actions-rs/toolchain@v1 with : | toolchain : stable override : true attempt_limit : 3 attempt_delay: 10000 - name: Install latest nightly toolchain uses: Wandalen/wretry.action/main@master with: action: actions-rs/toolchain@v1 with: | toolchain : nightly override : true attempt_limit: 3 attempt_delay: 10000 - uses: actions/checkout@v3 - name: Install will run: cargo install --git https://github.com/Wandalen/wTools --branch alpha willbe - name: Set MANIFEST_ROOT_PATH id: rootpath run: echo "::set-output name=path::$(dirname ${{ inputs.manifest_path }})" - name: Run tests with each feature run: will .test ${{ steps.rootpath.outputs.path }}/ dry:0 exclude:'' with_all_features:1 with_debug:1 with_nightly:1 with_none_features:1 with_release:1 with_stable:1