summaryrefslogtreecommitdiffstats
path: root/ci/azure-test-stable.yml
diff options
context:
space:
mode:
Diffstat (limited to 'ci/azure-test-stable.yml')
-rw-r--r--ci/azure-test-stable.yml71
1 files changed, 49 insertions, 22 deletions
diff --git a/ci/azure-test-stable.yml b/ci/azure-test-stable.yml
index f0ff7a7c..93e9ee13 100644
--- a/ci/azure-test-stable.yml
+++ b/ci/azure-test-stable.yml
@@ -20,6 +20,11 @@ jobs:
# rust_version: stable
rust_version: ${{ parameters.rust }}
+ - script: cargo install cargo-hack
+ displayName: Install cargo-hack
+ # FIXME(taiki-e): many features of current cargo-hack are not available on windows: https://github.com/taiki-e/cargo-hack/issues/3
+ condition: not(eq(variables['Agent.OS'], 'Windows_NT'))
+
- template: azure-is-release.yml
- ${{ each crate in parameters.crates }}:
@@ -28,17 +33,28 @@ jobs:
env:
LOOM_MAX_PREEMPTIONS: 2
CI: 'True'
- displayName: ${{ crate.key }} - cargo test
- workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
-
- # Run with each specified feature
- - ${{ each feature in crate.value }}:
- - script: cargo test --no-default-features --features ${{ feature }}
- env:
- LOOM_MAX_PREEMPTIONS: 2
- CI: 'True'
- displayName: ${{ crate.key }} - cargo test --features ${{ feature }}
- workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
+ displayName: ${{ crate }} - cargo test
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+
+ # Run with all crate features
+ - script: cargo test --all-features
+ env:
+ LOOM_MAX_PREEMPTIONS: 2
+ CI: 'True'
+ displayName: ${{ crate }} - cargo test --all-features
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+
+ # Check each specified feature works properly
+ # * --each-feature - run for each feature which includes --no-default-features and default features of package
+ # * --no-dev-deps - build without dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
+ - script: cargo hack check --each-feature --no-dev-deps
+ env:
+ LOOM_MAX_PREEMPTIONS: 2
+ CI: 'True'
+ displayName: ${{ crate }} - cargo hack check --each-feature
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+ # FIXME(taiki-e): many features of current cargo-hack are not available on windows: https://github.com/taiki-e/cargo-hack/issues/3
+ condition: not(eq(variables['Agent.OS'], 'Windows_NT'))
- template: azure-patch-crates.yml
@@ -48,14 +64,25 @@ jobs:
env:
LOOM_MAX_PREEMPTIONS: 2
CI: 'True'
- displayName: ${{ crate.key }} - cargo test
- workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
-
- # Run with each specified feature
- - ${{ each feature in crate.value }}:
- - script: cargo test --no-default-features --features ${{ feature }}
- env:
- LOOM_MAX_PREEMPTIONS: 2
- CI: 'True'
- displayName: ${{ crate.key }} - cargo test --features ${{ feature }}
- workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
+ displayName: ${{ crate }} - cargo test
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+
+ # Run with all crate features
+ - script: cargo test --all-features
+ env:
+ LOOM_MAX_PREEMPTIONS: 2
+ CI: 'True'
+ displayName: ${{ crate }} - cargo test --all-features
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+
+ # Check each specified feature works properly
+ # * --each-feature - run for each feature which includes --no-default-features and default features of package
+ # * --no-dev-deps - build without dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
+ - script: cargo hack check --each-feature --no-dev-deps
+ env:
+ LOOM_MAX_PREEMPTIONS: 2
+ CI: 'True'
+ displayName: ${{ crate }} - cargo hack check --each-feature
+ workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
+ # FIXME(taiki-e): many features of current cargo-hack are not available on windows: https://github.com/taiki-e/cargo-hack/issues/3
+ condition: not(eq(variables['Agent.OS'], 'Windows_NT'))