Marcboudreau/vault 13760/add test UI to completed (#19747)
* remove check of circleci configuration from pre-commit hook * add dependency on test-ui for tests-completed job
This commit is contained in:
parent
49fca89b1d
commit
c1a548d225
|
@ -260,6 +260,7 @@ jobs:
|
||||||
needs:
|
needs:
|
||||||
- setup
|
- setup
|
||||||
- test-go
|
- test-go
|
||||||
|
- test-ui
|
||||||
runs-on: ${{ fromJSON(needs.setup.outputs.compute-standard) }}
|
runs-on: ${{ fromJSON(needs.setup.outputs.compute-standard) }}
|
||||||
steps:
|
steps:
|
||||||
- run: echo "All Go test successfully passed"
|
- run: echo "All Go test successfully passed"
|
||||||
|
|
|
@ -37,8 +37,6 @@ block() {
|
||||||
# They are executed in this order (see end of file).
|
# They are executed in this order (see end of file).
|
||||||
CHECKS="ui_lint circleci_verify"
|
CHECKS="ui_lint circleci_verify"
|
||||||
|
|
||||||
MIN_CIRCLECI_VERSION=0.1.5575
|
|
||||||
|
|
||||||
# Run ui linter if changes in that dir detected.
|
# Run ui linter if changes in that dir detected.
|
||||||
ui_lint() {
|
ui_lint() {
|
||||||
local DIR=ui LINTER=node_modules/.bin/lint-staged
|
local DIR=ui LINTER=node_modules/.bin/lint-staged
|
||||||
|
@ -62,82 +60,6 @@ ui_lint() {
|
||||||
$LINTER || block "UI lint failed"
|
$LINTER || block "UI lint failed"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check .circleci/config.yml is up to date and valid, and that all changes are
|
|
||||||
# included together in this commit.
|
|
||||||
circleci_verify() {
|
|
||||||
# Change to the root dir of the repo.
|
|
||||||
cd "$(git rev-parse --show-toplevel)"
|
|
||||||
|
|
||||||
# Fail early if we accidentally used '.yaml' instead of '.yml'
|
|
||||||
if ! git diff --name-only --cached --exit-code -- '.circleci/***.yaml'; then
|
|
||||||
# This is just for consistency, as I keep making this mistake - Sam.
|
|
||||||
block "ERROR: File(s) with .yaml extension detected. Please rename them .yml instead."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Succeed early if no changes to yml files in .circleci/ are currently staged.
|
|
||||||
# make ci-verify is slow so we really don't want to run it unnecessarily.
|
|
||||||
if git diff --name-only --cached --exit-code -- '.circleci/***.yml'; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
# Make sure to add no explicit output before this line, as it would just be noise
|
|
||||||
# for those making non-circleci changes.
|
|
||||||
echo "==> Verifying config changes in .circleci/"
|
|
||||||
echo "--> OK: All files are .yml not .yaml"
|
|
||||||
|
|
||||||
# Ensure commit includes _all_ files in .circleci/
|
|
||||||
# So not only are the files up to date, but we are also committing them in one go.
|
|
||||||
if ! git diff --name-only --exit-code -- '.circleci/***.yml'; then
|
|
||||||
echo "ERROR: Some .yml diffs in .circleci/ are staged, others not."
|
|
||||||
block "Please commit the entire .circleci/ directory together, or omit it altogether."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--> OK: All .yml files in .circleci are staged."
|
|
||||||
|
|
||||||
if ! REASON=$(check_circleci_cli_version); then
|
|
||||||
echo "*** WARNING: Unable to verify changes in .circleci/:"
|
|
||||||
echo "--> $REASON"
|
|
||||||
# We let this pass if there is no valid circleci version installed.
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! make -C .circleci ci-verify; then
|
|
||||||
block "ERROR: make ci-verify failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--> OK: make ci-verify succeeded."
|
|
||||||
}
|
|
||||||
|
|
||||||
check_circleci_cli_version() {
|
|
||||||
if ! command -v circleci > /dev/null 2>&1; then
|
|
||||||
echo "circleci cli not installed."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CCI="circleci --skip-update-check"
|
|
||||||
|
|
||||||
if ! THIS_VERSION=$($CCI version) > /dev/null 2>&1; then
|
|
||||||
# Guards against very old versions that do not have --skip-update-check.
|
|
||||||
echo "The installed circleci cli is too old. Please upgrade to at least $MIN_CIRCLECI_VERSION."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SORTED_MIN is the lower of the THIS_VERSION and MIN_CIRCLECI_VERSION.
|
|
||||||
if ! SORTED_MIN="$(printf "%s\n%s" "$MIN_CIRCLECI_VERSION" "$THIS_VERSION" | sort -V | head -n1)"; then
|
|
||||||
echo "Failed to sort versions. Please open an issue to report this."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$THIS_VERSION" != "${THIS_VERSION#$MIN_CIRCLECI_VERSION}" ]; then
|
|
||||||
return 0 # OK - Versions have the same prefix, so we consider them equal.
|
|
||||||
elif [ "$SORTED_MIN" = "$MIN_CIRCLECI_VERSION" ]; then
|
|
||||||
return 0 # OK - MIN_CIRCLECI_VERSION is lower than THIS_VERSION.
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Version too low.
|
|
||||||
echo "The installed circleci cli v$THIS_VERSION is too old. Please upgrade to at least $MIN_CIRCLECI_VERSION"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
for CHECK in $CHECKS; do
|
for CHECK in $CHECKS; do
|
||||||
# Force each check into a subshell to avoid crosstalk.
|
# Force each check into a subshell to avoid crosstalk.
|
||||||
( $CHECK ) || exit $?
|
( $CHECK ) || exit $?
|
||||||
|
|
Loading…
Reference in New Issue