summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2019-03-22 11:58:00 -0700
committerGitHub <noreply@github.com>2019-03-22 11:58:00 -0700
commit678f15bd48151f82233fdecb4a4e7c538932d09a (patch)
treec55eb95e092fdec0c0ee7e0a7a77544e59e3c1a1 /ci
parentb1172f8074b381b543ff15e23e3092fc5dc6de7d (diff)
ci: skip crates.io dep run when releasing (#995)
#993 introduces changes in a sub crate that other Tokio crates depend on. To make CI pass, a `[patch]` statement and `path` dependencies are used. When releasing, these must be removed. However, the commit that removes them and prepares the crates for release will not be able to pass CI. This commit adds a conditional on a special `[ci-release]` snippet in the commit message. If this exists, CI is only run with the full "patched" dependencies.
Diffstat (limited to 'ci')
-rw-r--r--ci/azure-cargo-check.yml11
-rw-r--r--ci/azure-check-minrust.yml2
-rw-r--r--ci/azure-cross-compile.yml3
-rw-r--r--ci/azure-is-release.yml9
-rw-r--r--ci/azure-test-stable.yml3
5 files changed, 28 insertions, 0 deletions
diff --git a/ci/azure-cargo-check.yml b/ci/azure-cargo-check.yml
index d386bd6c..b8a3b9e3 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 de6313c2..7a5e602a 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 79606bb4..857aeb94 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 00000000..014b7a98
--- /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 c385be26..cd4f8cf9 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