diff --git a/.cirrus.yml b/.cirrus.yml index 4172a50d95c..d66d5f36566 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -15,6 +15,18 @@ task: - sh rustup.sh -y - . $HOME/.cargo/env - rustup target add i686-unknown-freebsd + - | + # Remove any existing patch statements + mv Cargo.toml Cargo.toml.bck + sed -n '/\[patch.crates-io\]/q;p' Cargo.toml.bck > Cargo.toml + + # Patch all crates + cat ci/patch.toml >> Cargo.toml + + # Print `Cargo.toml` for debugging + echo "~~~~ Cargo.toml ~~~~" + cat Cargo.toml + echo "~~~~~~~~~~~~~~~~~~~~" cargo_cache: folder: $HOME/.cargo/registry test_script: @@ -23,6 +35,7 @@ task: - cargo doc --all i686_test_script: - . $HOME/.cargo/env - - cargo test --all --exclude tokio-tls --no-fail-fast --target i686-unknown-freebsd + - | + cargo test --all --exclude tokio-tls --no-fail-fast --target i686-unknown-freebsd before_cache_script: - rm -rf $HOME/.cargo/registry/index diff --git a/ci/azure-cargo-check.yml b/ci/azure-cargo-check.yml index d386bd6c35d..b8a3b9e3d37 100644 --- a/ci/azure-cargo-check.yml +++ b/ci/azure-cargo-check.yml @@ -11,6 +11,17 @@ jobs: parameters: rust_version: ${{ parameters.rust }} + - template: azure-is-release.yml + + - ${{ each crate in parameters.crates }}: + - ${{ each feature in crate.value }}: + - script: cargo check ${{ parameters.noDefaultFeatures }} --features ${{ feature }} + displayName: Check `${{ crate.key }}`, features = ${{ feature }} + workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }} + condition: and(succeeded(), not(variables['isRelease'])) + + - template: azure-patch-crates.yml + - ${{ each crate in parameters.crates }}: - ${{ each feature in crate.value }}: - script: cargo check ${{ parameters.noDefaultFeatures }} --features ${{ feature }} diff --git a/ci/azure-check-minrust.yml b/ci/azure-check-minrust.yml index de6313c2473..7a5e602af7d 100644 --- a/ci/azure-check-minrust.yml +++ b/ci/azure-check-minrust.yml @@ -8,5 +8,7 @@ jobs: parameters: rust_version: ${{ parameters.rust_version }} + - template: azure-patch-crates.yml + - script: cargo check --all displayName: cargo check --all diff --git a/ci/azure-cross-compile.yml b/ci/azure-cross-compile.yml index 79606bb4160..857aeb94420 100644 --- a/ci/azure-cross-compile.yml +++ b/ci/azure-cross-compile.yml @@ -14,6 +14,9 @@ jobs: - script: rustup target add ${{ parameters.target }} displayName: "Add target" + # Always patch + - template: azure-patch-crates.yml + - script: cargo check --all --exclude tokio-tls --target ${{ parameters.target }} displayName: Check source diff --git a/ci/azure-is-release.yml b/ci/azure-is-release.yml new file mode 100644 index 00000000000..014b7a98a8f --- /dev/null +++ b/ci/azure-is-release.yml @@ -0,0 +1,9 @@ +steps: + - bash: | + set -e + + if git log --no-merges -1 --format='%s' | grep -q '[ci-release]'; then + echo "##vso[task.setvariable variable=isRelease]true" + fi + failOnStderr: true + displayName: Check if release commit diff --git a/ci/azure-test-stable.yml b/ci/azure-test-stable.yml index c385be26c5f..cd4f8cf9d47 100644 --- a/ci/azure-test-stable.yml +++ b/ci/azure-test-stable.yml @@ -19,6 +19,8 @@ jobs: parameters: rust_version: stable + - template: azure-is-release.yml + - ${{ each crate in parameters.crates }}: - script: cargo test env: @@ -26,6 +28,7 @@ jobs: CI: 'True' displayName: cargo test -p ${{ crate }} workingDirectory: $(Build.SourcesDirectory)/${{ crate }} + condition: and(succeeded(), not(variables['isRelease'])) - template: azure-patch-crates.yml