Skip to content

Commit

Permalink
ci: skip crates.io dep run when releasing (#995)
Browse files Browse the repository at this point in the history
#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.
  • Loading branch information
carllerche authored Mar 22, 2019
1 parent b1172f8 commit 678f15b
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 1 deletion.
15 changes: 14 additions & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
11 changes: 11 additions & 0 deletions ci/azure-cargo-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
Expand Down
2 changes: 2 additions & 0 deletions ci/azure-check-minrust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ jobs:
parameters:
rust_version: ${{ parameters.rust_version }}

- template: azure-patch-crates.yml

- script: cargo check --all
displayName: cargo check --all
3 changes: 3 additions & 0 deletions ci/azure-cross-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
9 changes: 9 additions & 0 deletions ci/azure-is-release.yml
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions ci/azure-test-stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@ jobs:
parameters:
rust_version: stable

- template: azure-is-release.yml

- ${{ each crate in parameters.crates }}:
- script: cargo test
env:
LOOM_MAX_DURATION: 10
CI: 'True'
displayName: cargo test -p ${{ crate }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
condition: and(succeeded(), not(variables['isRelease']))

- template: azure-patch-crates.yml

Expand Down

0 comments on commit 678f15b

Please sign in to comment.