| #!/usr/bin/env bash | |
| # This script returns the current BuildKit ref and source repository being used. | |
| # This script will only work with a BuildKit repository hosted on GitHub. | |
| # | |
| # The output of this script may be valid shell script, but is intended for use with | |
| # GitHub Actions' $GITHUB_ENV. | |
| buildkit_pkg=github.com/moby/buildkit | |
| # get buildkit version from go.mod | |
| buildkit_ref=$(./hack/with-go-mod.sh go list -mod=mod -u -m -f '{{if .Replace}}{{.Replace.Version}}{{else}}{{.Version}}{{end}}' "$buildkit_pkg") | |
| buildkit_repo=$(./hack/with-go-mod.sh go list -mod=mod -u -m -f '{{if .Replace}}{{.Replace.Path}}{{else}}{{.Path}}{{end}}' "$buildkit_pkg") | |
| buildkit_repo=${buildkit_repo#github.com/} | |
| if [[ "${buildkit_ref}" == *-*-* ]]; then | |
| # if pseudo-version, figure out just the uncommon sha (https://github.com/golang/go/issues/34745) | |
| buildkit_ref=$(awk -F"-" '{print $NF}' <<< "$buildkit_ref" | awk 'BEGIN{FIELDWIDTHS="7"} {print $1}') | |
| # use github api to return full sha to be able to use it as ref | |
| buildkit_ref=$(curl -s "https://api.github.com/repos/${buildkit_repo}/commits/${buildkit_ref}" | jq -r .sha) | |
| fi | |
| cat << EOF | |
| BUILDKIT_REPO=$buildkit_repo | |
| BUILDKIT_REF=$buildkit_ref | |
| EOF |