Add rustflag for linking missing lib on windows #175
Workflow file for this run
This file contains hidden or 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
| # ******************************************************************************** | |
| # Copyright (c) 2024 Contributors to the Eclipse Foundation | |
| # | |
| # See the NOTICE file(s) distributed with this work for additional | |
| # information regarding copyright ownership. | |
| # | |
| # This program and the accompanying materials are made available under the | |
| # terms of the Apache License Version 2.0 which is available at | |
| # https://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # *******************************************************************************/ | |
| # Comprehensive combination of checks, linting, feature-checks, testing to be run on merge and on PR | |
| # Upload test results for potential re-use in publication workflow, returns the corresponding download URL as an output on workflow_call | |
| name: Cargo check and clippy | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - try_to_fix_build_on_windows | |
| pull_request: | |
| paths: | |
| - "examples/**" | |
| - "src/**" | |
| - "tests/**" | |
| - "Cargo.*" | |
| workflow_call: | |
| outputs: | |
| test_results_url: | |
| description: "URL of the test results artifact" | |
| value: ${{ jobs.test.outputs.test_results_url }} | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.ref }}-${{ github.workflow }} | |
| cancel-in-progress: true | |
| env: | |
| RUST_TOOLCHAIN: ${{ vars.RUST_TOOLCHAIN || 'stable' }} | |
| RUSTFLAGS: -Dwarnings | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build-on-windows: | |
| name: build and test on Windows | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - name: Install Rust | |
| uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| - name: Run tests | |
| env: | |
| RUSTFLAGS: -l advapi32 | |
| run: | | |
| cargo test --no-fail-fast --all-features --all-targets | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| - name: Run cargo check | |
| run: | | |
| cargo check --workspace --all-targets --all-features | |
| fmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| components: rustfmt | |
| - name: Run cargo fmt | |
| run: | | |
| cargo fmt --all --check | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| components: clippy | |
| - name: Run cargo clippy | |
| run: | | |
| cargo clippy --version | |
| cargo clippy --all-targets --all-features --no-deps -- -W warnings -D warnings | |
| docu: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTDOCFLAGS: -Dwarnings | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| - name: Run rustdoc | |
| run: | | |
| cargo doc --no-deps --all-features | |
| check-links: | |
| # check links contained in markdown and source code files | |
| # sadly, lychee does not (yet) support checking links in Asciidoc files | |
| # https://github.com/lycheeverse/lychee/issues/291 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - name: Restore lychee cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 | |
| with: | |
| path: .lycheecache | |
| key: cache-lychee-${{ github.sha }} | |
| restore-keys: cache-lychee- | |
| - name: Run lychee | |
| uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2.8.0 | |
| with: | |
| args: | | |
| --cache --max-cache-age 1d --verbose --no-progress --exclude-path './target/' --exclude-path './up-spec/' -- './**/*.md' './**/*.rs' './**/*.toml' './**/*.yaml' | |
| feature-check: | |
| # Comprehensive check for feature flag combinations, excluding development dependencies | |
| needs: check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| - uses: taiki-e/install-action@bfadeaba214680fb4ab63e710bcb2a6a17019fdc # v2.70.4 | |
| with: | |
| tool: cargo-hack | |
| - name: Run cargo hack powerset | |
| run: | | |
| cargo hack check --feature-powerset --no-dev-deps | |
| test: | |
| # Subset of feature-combos, on only one OS - more complete testing in test-featurematrix.yaml | |
| outputs: | |
| test_results_url: ${{ steps.test_results.outputs.artifact-url }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| feature-flags: ["", "--no-default-features", "--all-features"] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: "recursive" | |
| - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4 | |
| with: | |
| toolchain: ${{ env.RUST_TOOLCHAIN }} | |
| - name: Run lib tests | |
| run: | | |
| mkdir -p ${GITHUB_WORKSPACE}/target | |
| RUSTC_BOOTSTRAP=1 cargo test --no-fail-fast --all-targets ${{ matrix.feature-flags }} -- -Z unstable-options --format junit --report-time > ${GITHUB_WORKSPACE}/target/lib-test-results.xml | |
| - name: Run doc tests | |
| run: | | |
| RUSTC_BOOTSTRAP=1 cargo test --no-fail-fast --doc ${{ matrix.feature-flags }} -- -Z unstable-options --format junit --report-time > ${GITHUB_WORKSPACE}/target/doc-test-results.xml | |
| - name: Upload all-features test results artifact | |
| id: test_results | |
| if: matrix.feature-flags == '--all-features' | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: test-results | |
| # include all test result files | |
| path: target/*-results.xml | |