c37235381f
* feat(deployment): package as Docker image & Helm Chart * remove erroneous permission request * fix corepack issue * fix prettier * deployment testing of helm chart with ctlptl, tilt & kind * fix linting * remove need for license to be mounted * ensure consistency in naming * incorporate copilot comments * fix CI pipeline * fix * incorporate copilot review comments * include MIXPANEL environment variable * remove single quotes from NODE_ENV ARG --------- Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>
64 lines
2.7 KiB
YAML
64 lines
2.7 KiB
YAML
name: Get Version
|
|
|
|
on:
|
|
workflow_call:
|
|
outputs:
|
|
IMAGE_VERSION_TAG:
|
|
description: 'The image version tag under which the Helm chart and docker image should be published'
|
|
value: ${{ jobs.get-version.outputs.VERSION }}
|
|
|
|
permissions: {} # purposefully empty by default at workflow level, explicitly overridden for specific jobs below
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-get-version-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
get-version:
|
|
outputs:
|
|
VERSION: ${{ steps.get-version.outputs.VERSION }}
|
|
name: Get Version
|
|
permissions:
|
|
contents: read
|
|
|
|
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
with:
|
|
sparse-checkout: ''
|
|
fetch-depth: 1
|
|
fetch-tags: 1
|
|
persist-credentials: true # zizmor: ignore[artipacked] need to fetch tags in the next step and this ensures that git is configured & authenticated
|
|
- run: git fetch origin 'refs/tags/*:refs/tags/*'
|
|
- name: Get version tag
|
|
id: get-version
|
|
run: |
|
|
VERSION=""
|
|
if [[ "${GITHUB_REF_NAME}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
VERSION="${GITHUB_REF_NAME}"
|
|
echo "VERSION=${VERSION}" >> ${GITHUB_OUTPUT}
|
|
echo "${VERSION} is a valid semver, we shall use it. Exiting"
|
|
exit 0
|
|
fi
|
|
|
|
LAST_RELEASE="$(git describe --always --tags $(git rev-list --tags --max-count=1) | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1 || true)" # get the last release tag. FIXME: Fails if a commit is tagged with more than one tag: https://stackoverflow.com/questions/8089002/git-describe-with-two-tags-on-the-same-commit/56039163#56039163
|
|
LAST_RELEASE="${LAST_RELEASE:-0.0.0}"
|
|
NEXT_RELEASE="$(echo "${LAST_RELEASE}" | awk -F. -v OFS=. '{$NF += 1 ; print}')"
|
|
|
|
if [[ "${GITHUB_REF_NAME}" == "main" ]]; then
|
|
VERSION="${NEXT_RELEASE}-alpha.${GITHUB_RUN_NUMBER}"
|
|
echo "VERSION=${VERSION}" >> ${GITHUB_OUTPUT}
|
|
echo "${VERSION} will be an alpha version. Exiting"
|
|
exit 0
|
|
fi
|
|
|
|
BRANCH_NAME_TRUNCATED="$(echo "${GITHUB_REF_NAME}" | cut -c -28 | sed 's/[^a-zA-Z0-9.-]/-/g')" # docker has a 128 character tag limit, so ensuring the branch name will be short enough
|
|
|
|
PADDED_RUN_NUMBER="$(printf "%06d" "${GITHUB_RUN_NUMBER}")"
|
|
COMMIT_SHA1_TRUNCATED="$(echo "${GITHUB_SHA}" | cut -c -7)"
|
|
|
|
VERSION="${NEXT_RELEASE}-branch.${BRANCH_NAME_TRUNCATED}.${PADDED_RUN_NUMBER}-${COMMIT_SHA1_TRUNCATED}"
|
|
echo "VERSION=${VERSION}" >> ${GITHUB_OUTPUT}
|
|
echo "${VERSION} will be a branch build version. Exiting"
|
|
exit 0
|