mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-14 17:02:49 +03:00
736236a904
The motivation here is: - save some CI resources - make it cleaner/more sensible to do library caching Since OSS is a dependency of pro, and at the same time the various executables can be built in parallel, doing this all in the same job probably is more sensible. Future improvements: there are separate pro and oss pipelines and one or the other of those will need to wait unnecessarily while everything finishes. In practice, currently this isn't a big deal, but we could use the BuildKite blocking job API to get more fine-grained downstream triggering. GitOrigin-RevId: aa917996cbfc678becaaafca490d6edc7de89b1f
33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# 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
|
|
# - else return a combination of branch and SHA hash
|
|
#
|
|
# In both of above we strip any non alpha-numeric, excluding: ._-
|
|
#
|
|
# This is called in a compile time macro to bake the version into the server
|
|
# binaries, and also at various points during CI (and must agree every time).
|
|
|
|
GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
GIT_SHA="$(git rev-parse --short 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 "")
|
|
|
|
VERSION="${GIT_TAG_EXACT}"
|
|
test -n "$VERSION" || VERSION="${GIT_BRANCH}-${GIT_SHA}${GIT_DIRTY}"
|
|
|
|
VERSION="$(echo $VERSION | tr -cd '[[:alnum:]]._-')"
|
|
|
|
# Sanity check: currently some parts of CI reference BUILDKITE_TAG, others call
|
|
# this script again and these must agree.
|
|
if [ -n "$BUILDKITE_TAG" ] && [ "$VERSION" != "$BUILDKITE_TAG" ]; then
|
|
echo "BUILDKITE_TAG is set as \"$BUILDKITE_TAG\" but somehow does not agree with repo tag \"$VERSION\"!" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "$VERSION"
|