Run coverage when test-coverage.sh is modified

This commit is contained in:
Michael Vines
2018-12-18 17:33:28 -08:00
committed by Grimes
parent cafa873f06
commit 3efbffe4e3
4 changed files with 47 additions and 21 deletions

30
ci/affects-files.sh Executable file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env bash
#
# Checks if a CI build affects one or more path patterns. Each command-line
# argument is checked in series.
#
# Bash regular expresses are permitted in the pattern, and the colon (':')
# character is guaranteed to appear before and after each affected file (and thus
# can be used as an anchor), eg:
# .rs: -- any file or directory ending in .rs
# .rs -- also matches foo.rs.bar
# :snap/ -- anything under the snap/ subdirectory
# snap/ -- also matches foo/snap/
#
if ci/is-pr.sh; then
affectedFiles="$(buildkite-agent meta-data get affected_files)"
echo "Affected files in this PR: $affectedFiles"
for pattern in "$@"; do
if [[ ":$affectedFiles:" =~ $pattern ]]; then
exit 0
fi
done
exit 1
fi
# affected_files metadata is not currently available for non-PR builds, so assume
# the worse (affected)
exit 0

View File

@ -29,6 +29,7 @@ steps:
- command: "ci/pr-snap.sh" - command: "ci/pr-snap.sh"
timeout_in_minutes: 20 timeout_in_minutes: 20
name: "snap" name: "snap"
branches: "pull/*"
- wait - wait
- trigger: "solana-secondary" - trigger: "solana-secondary"
branches: "!pull/*" branches: "!pull/*"

View File

@ -4,16 +4,11 @@ set -e
# Only run snap.sh for pull requests that modify files under /snap # Only run snap.sh for pull requests that modify files under /snap
# #
cd "$(dirname "$0")" cd "$(dirname "$0")"/..
if ./is-pr.sh; then ci/affects-files.sh :snap/ || {
affected_files="$(buildkite-agent meta-data get affected_files)"
echo "Affected files in this PR: $affected_files"
if [[ ! ":$affected_files:" =~ :snap/ ]]; then
echo "Skipping snap build as no files under /snap were modified" echo "Skipping snap build as no files under /snap were modified"
exit 0 exit 0
fi }
exec ./snap.sh
else exec ci/snap.sh
echo "Skipping snap build as this is not a pull request"
fi

View File

@ -9,15 +9,15 @@ annotate() {
} }
} }
if ci/is-pr.sh; then ci/affects-files.sh \
affectedFiles="$(buildkite-agent meta-data get affected_files)" .rs: \
echo "Affected files in this PR: $affectedFiles" ci/test-coverage.sh: \
if [[ ! ":$affectedFiles:" =~ \.rs: ]]; then scripts/coverage.sh: \
|| {
annotate --style info --context coverage-info \ annotate --style info --context coverage-info \
"Coverage skipped as no .rs files were modified" "Coverage skipped as no .rs files were modified"
exit 0 exit 0
fi }
fi
source ci/upload-ci-artifact.sh source ci/upload-ci-artifact.sh
ci/version-check-with-upgrade.sh nightly ci/version-check-with-upgrade.sh nightly