diff --git a/azure/cargo-check.yml b/azure/cargo-check.yml index 137c7ed..bfa19c0 100644 --- a/azure/cargo-check.yml +++ b/azure/cargo-check.yml @@ -3,13 +3,22 @@ parameters: benches: false setup: [] all_features: false + err_on_warn: false + allow_fail: false jobs: - job: ${{ parameters.name }} ${{ if eq(parameters.rust, 'stable') }}: - displayName: cargo check + ${{ if eq(parameters.err_on_warn, 'true') }}: + displayName: "cargo check -Dwarnings" + ${{ if ne(parameters.err_on_warn, 'true') }}: + displayName: cargo check ${{ if ne(parameters.rust, 'stable') }}: - displayName: cargo +${{ parameters.rust }} check + ${{ if eq(parameters.err_on_warn, 'true') }}: + displayName: "cargo +${{ parameters.rust }} check -Dwarnings" + ${{ if ne(parameters.err_on_warn, 'true') }}: + displayName: cargo +${{ parameters.rust }} check + continueOnError: ${{ parameters.allow_fail }} pool: vmImage: ubuntu-16.04 steps: @@ -17,6 +26,9 @@ jobs: parameters: rust: ${{ parameters.rust }} setup: ${{ parameters.setup }} + - ${{ if eq(parameters.err_on_warn, 'true') }}: + - bash: echo "##vso[task.setvariable variable=RUSTFLAGS;]-Dwarnings" + displayName: "Enable warnings from rustc" - script: cargo check --all --bins --examples --tests displayName: Check compilation w/ default features - script: cargo check --all --bins --examples --tests --no-default-features diff --git a/azure/cargo-clippy.yml b/azure/cargo-clippy.yml index 3a2bd84..965637b 100644 --- a/azure/cargo-clippy.yml +++ b/azure/cargo-clippy.yml @@ -19,5 +19,5 @@ jobs: setup: ${{ parameters.setup }} components: - clippy - - script: cargo clippy --all + - script: cargo clippy --all displayName: Run clippy diff --git a/azure/stages.yml b/azure/stages.yml index bf2fa1b..a10b867 100644 --- a/azure/stages.yml +++ b/azure/stages.yml @@ -10,6 +10,7 @@ parameters: check_all_features: true nightly_feature: '' test_features: '' + canaries: true stages: # the format here is so that we can have _two_ instances of this whole @@ -58,6 +59,7 @@ stages: single_threaded: ${{ parameters.single_threaded }} nightly_feature: ${{ parameters.nightly_feature }} features: ${{ parameters.test_features }} + canaries: ${{ parameters.canaries }} - stage: ${{ format('{0}style', parameters.prefix) }} ${{ if ne(parameters.prefix, '') }}: displayName: ${{ format('Style linting ({0})', parameters.prefix) }} @@ -68,6 +70,7 @@ stages: - template: style.yml parameters: setup: ${{ parameters.setup }} + canaries: ${{ parameters.canaries }} - ${{ if ne('', parameters.codecov_token) }}: - stage: ${{ format('{0}coverage', parameters.prefix) }} ${{ if ne(parameters.prefix, '') }}: diff --git a/azure/style.yml b/azure/style.yml index 821a9a7..3eb0393 100644 --- a/azure/style.yml +++ b/azure/style.yml @@ -1,22 +1,31 @@ parameters: setup: [] + canaries: true jobs: - template: rustfmt.yml parameters: name: rustfmt - - template: rustfmt.yml - parameters: - name: rustfmt_beta - rust: beta - allow_fail: true + - ${{ if eq(parameters.canaries, 'true') }}: + - template: rustfmt.yml + parameters: + name: rustfmt_beta + rust: beta + allow_fail: true - template: cargo-clippy.yml parameters: name: clippy setup: ${{ parameters.setup }} - - template: cargo-clippy.yml - parameters: - name: clippy_beta - setup: ${{ parameters.setup }} - rust: beta - allow_fail: true + - ${{ if eq(parameters.canaries, 'true') }}: + - template: cargo-check.yml + parameters: + name: warning_free + setup: ${{ parameters.setup }} + err_on_warn: true + allow_fail: true + - template: cargo-clippy.yml + parameters: + name: clippy_beta + setup: ${{ parameters.setup }} + rust: beta + allow_fail: true diff --git a/azure/tests.yml b/azure/tests.yml index ab11fc7..b5eb146 100644 --- a/azure/tests.yml +++ b/azure/tests.yml @@ -5,6 +5,7 @@ parameters: single_threaded: false nightly_feature: '' features: '' + canaries: true jobs: - template: test.yml @@ -15,21 +16,22 @@ jobs: setup: ${{ parameters.setup }} test_ignored: ${{ parameters.test_ignored }} features: ${{ parameters.features }} - - template: test.yml - parameters: - name: cargo_test_beta - rust: beta - envs: ${{ parameters.envs }} - setup: ${{ parameters.setup }} - test_ignored: ${{ parameters.test_ignored }} - single_threaded: ${{ parameters.single_threaded }} - features: ${{ parameters.features }} - - template: test.yml - parameters: - name: cargo_test_nightly - rust: nightly - allow_fail: true - envs: ${{ parameters.envs }} - setup: ${{ parameters.setup }} - test_ignored: ${{ parameters.test_ignored }} - features: "${{ parameters.features }},${{ parameters.nightly_feature }}" + - ${{ if eq(parameters.canaries, 'true') }}: + - template: test.yml + parameters: + name: cargo_test_beta + rust: beta + envs: ${{ parameters.envs }} + setup: ${{ parameters.setup }} + test_ignored: ${{ parameters.test_ignored }} + single_threaded: ${{ parameters.single_threaded }} + features: ${{ parameters.features }} + - template: test.yml + parameters: + name: cargo_test_nightly + rust: nightly + allow_fail: true + envs: ${{ parameters.envs }} + setup: ${{ parameters.setup }} + test_ignored: ${{ parameters.test_ignored }} + features: "${{ parameters.features }},${{ parameters.nightly_feature }}"