name: Determine pseudo version description: "Determine go-like pseudo version to use as container image tag." outputs: pseudoVersion: description: "Pseudo version based on the current HEAD" value: ${{ steps.pseudo-version.outputs.pseudoVersion }} semanticVersion: description: "Semantic version based on the current HEAD" value: ${{ steps.pseudo-version.outputs.semanticVersion }} releaseVersion: description: "Release version based on branch name" value: ${{ steps.pseudo-version.outputs.releaseVersion }} timestamp: description: "Commit timestamp based on the current HEAD" value: ${{ steps.pseudo-version.outputs.timestamp }} branchName: description: "Branch name" value: ${{ steps.pseudo-version.outputs.branchName }} # Linux runner only (homedir trick does not work on macOS, required for private runner) runs: using: "composite" steps: - name: get pseudo version id: pseudo-version run: | if $(git rev-parse --is-shallow-repository); then git fetch --prune --unshallow --tags -v else git fetch --tags -v fi homedir="$(getent passwd $(id -u) | cut -d ":" -f 6)" export GOCACHE=${homedir}/.cache/go-build export GOPATH=${homedir}/go export GOMODCACHE=${homedir}/.cache/go-mod pseudoVersion=$(go run .) semanticVersion=$(go run . -semantic-version) timestamp=$(go run . -print-timestamp) branchName=$(go run . -print-branch) releaseVersion=$(go run . -print-release-branch) echo "::set-output name=pseudoVersion::${pseudoVersion}" echo "::set-output name=semanticVersion::${semanticVersion}" echo "::set-output name=timestamp::${timestamp}" echo "::set-output name=branchName::${branchName}" echo "::set-output name=releaseVersion::${releaseVersion}" working-directory: hack/pseudo-version shell: bash