mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
CI: Make get-version.sh fail if any of the git
commands fail.
We are seeing errors emitted from get-version.sh in some PRs, but it proceeds anyway, generating a nonsense version of "dev--". Instead, let's fail fast so we can diagnose the issue. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8115 GitOrigin-RevId: bb8d25f0f56c807dbb9928b82e31c94d23d9d1f5
This commit is contained in:
parent
e9e5aab169
commit
59ca6fe81e
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
# Outputs a version name for the hasura servers and their components, given the
|
||||
# checked out state of the repo:
|
||||
# - if HEAD has a tag, return that
|
||||
@ -11,10 +15,10 @@
|
||||
# binaries, and also at various points during CI (and must agree every time).
|
||||
|
||||
# When 'ci/server-test-mode' label is present in a PR, the CI runs in a
|
||||
# so-called "server test mode". In server test mode, a server from some other
|
||||
# CI build is used to run all the server test jobs. This causes some tests,
|
||||
# which assert the version from /v1/version to be equal to the one
|
||||
# returned by this script, to fail. SERVER_TEST_MODE env var is used to
|
||||
# so-called "server test mode". In server test mode, a server from some other
|
||||
# CI build is used to run all the server test jobs. This causes some tests,
|
||||
# which assert the version from /v1/version to be equal to the one
|
||||
# returned by this script, to fail. SERVER_TEST_MODE env var is used to
|
||||
# force the version to be set to the value in /build/_server_output/version.txt.
|
||||
# This is done only for test_oss_server_pg_* CI jobs in server test mode.
|
||||
if [[ "$SERVER_TEST_MODE" == "true" ]]; then
|
||||
@ -27,14 +31,15 @@ GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
GIT_SHA="$(git rev-parse --short=7 HEAD)"
|
||||
# NOTE: a commit may have multiple tags; this should return the most recent
|
||||
# result of `git tag` if any:
|
||||
GIT_TAG_EXACT="$(git describe --tags --exact-match --dirty 2>/dev/null)"
|
||||
GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "-dirty" || echo "")
|
||||
if GIT_TAG_EXACT="$(git describe --tags --exact-match --dirty 2>/dev/null)"; then
|
||||
VERSION="${GIT_TAG_EXACT}"
|
||||
else
|
||||
GIT_DIRTY=$(test -n "$(git status --porcelain)" && echo "-dirty" || echo '')
|
||||
# IMPORTANT: SHA hash needs to come first so we get a unique version string,
|
||||
# even in the presence of truncation below
|
||||
VERSION="dev-${GIT_SHA}${GIT_DIRTY}-${GIT_BRANCH}"
|
||||
fi
|
||||
|
||||
VERSION="${GIT_TAG_EXACT}"
|
||||
# IMPORTANT: SHA hash needs to come first so we get a unique version string,
|
||||
# even in the presence of truncation below
|
||||
test -n "$VERSION" || VERSION="dev-${GIT_SHA}${GIT_DIRTY}-${GIT_BRANCH}"
|
||||
|
||||
VERSION="$(echo $VERSION | tr -cd '[[:alnum:]]._-')"
|
||||
VERSION="$(echo "$VERSION" | tr -cd '[[:alnum:]]._-')"
|
||||
# Truncate to 50 chars. See: https://github.com/hasura/graphql-engine-mono/pull/4183
|
||||
echo "${VERSION:0:50}"
|
||||
|
Loading…
Reference in New Issue
Block a user