diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bfbe861..c788400 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,96 +1,88 @@ -stages: - - stage: check - displayName: Compilation check - dependsOn: [] - jobs: - - template: azure/cargo-check.yml@templates +jobs: + - job: test + displayName: cargo test --{examples,doc,lib} + strategy: + matrix: + Linux-stable: + vmImage: ubuntu-latest + rust: stable + Linux-beta: + vmImage: ubuntu-latest + rust: beta + Linux-nightly: + vmImage: ubuntu-latest + rust: nightly + MacOS: + vmImage: macOS-10.14 + rust: stable + Windows: + vmImage: windows-2019 + rust: stable + pool: + vmImage: $(vmImage) + steps: + - template: install-rust.yml@templates parameters: - name: cargo_check + rust: $(rust) + components: + - rustfmt + - clippy + - script: cargo check --all-targets + displayName: cargo check + - script: cargo test --examples + displayName: cargo test --examples + - script: cargo test --doc + displayName: cargo test --doc + - script: cargo test --lib + displayName: cargo test --lib + - script: cargo fmt --all -- --check + displayName: cargo fmt --check + condition: and(eq( variables['rust'], 'beta' ), eq( variables['Agent.OS'], 'Linux' )) + - script: cargo clippy -- -D warnings + displayName: cargo clippy + condition: and(eq( variables['rust'], 'beta' ), eq( variables['Agent.OS'], 'Linux' )) # This represents the minimum Rust version supported. # Tests are not run as tests may require newer versions of rust. - - stage: msrv + - job: msrv + pool: + vmImage: ubuntu-latest displayName: "Minimum supported Rust version: 1.36.0" dependsOn: [] - jobs: - - template: azure/cargo-check.yml@templates + steps: + - template: install-rust.yml@templates parameters: - rust: 1.36.0 - - stage: test - displayName: Test suite - dependsOn: check - jobs: - - job: test - displayName: cargo test --{examples,doc,lib} (cross-platform) - strategy: - matrix: - Linux: - vmImage: ubuntu-16.04 - MacOS: - vmImage: macOS-10.14 - Windows: - vmImage: windows-2019 - pool: - vmImage: $(vmImage) - steps: - - template: azure/install-rust.yml@templates - parameters: - rust: stable - - script: cargo test --examples - displayName: Test examples - - script: cargo test --doc - displayName: Run doctests - - script: cargo test --lib - displayName: Run unit tests - - job: integration - displayName: cargo test - pool: - vmImage: ubuntu-16.04 - services: - greenmail: greenmail - steps: - - template: azure/install-rust.yml@templates - parameters: - rust: stable - - script: cargo test - displayName: Run tests - - template: azure/install-rust.yml@templates - parameters: - rust: beta - - script: cargo test - displayName: Run tests on beta - - template: azure/install-rust.yml@templates - parameters: - rust: nightly - - script: cargo test - displayName: Run tests on nightly - continueOnError: true - - stage: style - displayName: Style linting - dependsOn: check - jobs: - - template: azure/style.yml@templates + rust: 1.36.0 + - script: cargo check + displayName: cargo check + - job: integration + displayName: cargo test --tests + pool: + vmImage: ubuntu-latest + services: + greenmail: greenmail + steps: + - template: install-rust.yml@templates + - script: cargo test --tests + displayName: cargo test # https://github.com/greenmail-mail-test/greenmail/issues/284 -# - stage: coverage -# displayName: Code coverage -# dependsOn: test -# jobs: -# - template: azure/coverage.yml@templates -# parameters: -# codecov_token: $(CODECOV_TOKEN_SECRET) -# services: -# greenmail: greenmail -# envs: -# TEST_HOST: greenmail +# - template: coverage.yml@templates +# parameters: +# token: $(CODECOV_TOKEN_SECRET) +# services: +# greenmail: greenmail +# envs: +# TEST_HOST: greenmail resources: repositories: - repository: templates type: github name: crate-ci/azure-pipelines + ref: refs/heads/v0.3 endpoint: jonhoo containers: - container: greenmail - image: greenmail/standalone:1.5.10 + image: greenmail/standalone:1.5.11 ports: - 3025:3025 - 3110:3110