gpt4 book ai didi

git - 获取 AWS CodeBuild 的 GitHub git 分支

转载 作者:IT王子 更新时间:2023-10-29 00:39:26 24 4
gpt4 key购买 nike

我将 AWS CodeBuild 设置为从 GitHub 自动构建。其他 CI 服务为分支提供环境变量,但我找不到用于 AWS CodeBuild 的环境变量。有一个 CODEBUILD_SOURCE_VERSION设置为 pr/7其中 7是 pull 请求编号或 git commit sha。

鉴于提交 sha,我一直在尝试获取分支名称,但到目前为止没有运气。

git branch --contains <commitsha>不起作用,因为它是一个分离的头。如何从 CodeBuild 获取提交的 git 分支?

最佳答案

您可以从 https://github.com/thii/aws-codebuild-extras 中获得灵感

⚠️我不建议为 security sake 运行 curl 命令!如果某些小人窃取了对 thii/aws-codebuild-extras 的访问权 repo ,你完蛋了!

只是copy paste the script (理解它!)并将其添加到您的 docker 镜像中,然后从您的文件系统中调用它。

#!/bin/bash

export CI=true
export CODEBUILD=true

export CODEBUILD_GIT_BRANCH=`git symbolic-ref HEAD --short 2>/dev/null`
if [ "$CODEBUILD_GIT_BRANCH" == "" ] ; then
CODEBUILD_GIT_BRANCH=`git branch -a --contains HEAD | sed -n 2p | awk '{ printf $1 }'`
export CODEBUILD_GIT_BRANCH=${CODEBUILD_GIT_BRANCH#remotes/origin/}
fi

export CODEBUILD_GIT_MESSAGE=`git log -1 --pretty=%B`
export CODEBUILD_GIT_AUTHOR=`git log -1 --pretty=%an`
export CODEBUILD_GIT_AUTHOR_EMAIL=`git log -1 --pretty=%ae`
export CODEBUILD_GIT_COMMIT=`git log -1 --pretty=%H`
export CODEBUILD_GIT_TAG=`git describe --tags --abbrev=0`

export CODEBUILD_PULL_REQUEST=false
if [[ $CODEBUILD_GIT_BRANCH == pr-* ]] ; then
export CODEBUILD_PULL_REQUEST=${CODEBUILD_GIT_BRANCH#pr-}
fi

export CODEBUILD_PROJECT=${CODEBUILD_BUILD_ID%:$CODEBUILD_LOG_PATH}
export CODEBUILD_BUILD_URL=https://$AWS_DEFAULT_REGION.console.aws.amazon.com/codebuild/home?region=$AWS_DEFAULT_REGION#/builds/$CODEBUILD_BUILD_ID/view/new

echo "==> AWS CodeBuild Extra Environment Variables:"
echo "==> CI = $CI"
echo "==> CODEBUILD = $CODEBUILD"
echo "==> CODEBUILD_GIT_AUTHOR = $CODEBUILD_GIT_AUTHOR"
echo "==> CODEBUILD_GIT_AUTHOR_EMAIL = $CODEBUILD_GIT_AUTHOR_EMAIL"
echo "==> CODEBUILD_GIT_BRANCH = $CODEBUILD_GIT_BRANCH "
echo "==> CODEBUILD_GIT_COMMIT = $CODEBUILD_GIT_COMMIT"
echo "==> CODEBUILD_GIT_MESSAGE = $CODEBUILD_GIT_MESSAGE"
echo "==> CODEBUILD_GIT_TAG = $CODEBUILD_GIT_TAG"
echo "==> CODEBUILD_PROJECT = $CODEBUILD_PROJECT"
echo "==> CODEBUILD_PULL_REQUEST = $CODEBUILD_PULL_REQUEST"

关于git - 获取 AWS CodeBuild 的 GitHub git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47657423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com