GPG在部署脚本中验证git标记
我们希望我们的部署过程直接从我们的git中提取
存储库,但只有在签名时才激活新的更改(通过git tag -s)带有GPG签名.我发现很少有例子 使用GPG验证git标签的工作流程,所以我不确定是否 对于这种事情,这是一种“最佳实践”. 到目前为止我们看到的是这样的: # discard erroneous local changes git reset --hard HEAD # get changes git fetch start=$(git rev-parse FETCH_HEAD) # get new tags git fetch --tags # find most recent release tag tag=$(git describe --abbrev=0 --match "release-*" $start) if git tag -v $tag; then git checkout $tag ...do stuff... fi 这有意义吗?特别是为了避免错误 或者,如果您有使用的文档化部署工作流 解决方法
问题的标题是关于部署工作流程中的签名标记,但您要求的内容与签名标记几乎没有关系.实际上,唯一不同的步骤就是验证标签,你已经在做了.
git reset –hard HEAD不会清除任何未跟踪的本地文件,这可能会破坏你的构建过程.在git reset –hard之后你可能还想运行git clean -d -x -f. git fetch可能会获取多个分支,或者它可能无法获取您希望它获取的内容.所有获取的分支都将添加到.git / FETCH_HEAD中,以避免在使用FETCH_HEAD引用时出现任何意外,我建议明确地获取发布分支.像git fetch $remote $branch这样的东西. 你在问这种方法是否有“更好”的方法,但我个人认为这已经足够了.如果你的目标是避免不必要的提取,那么你可以使用git ls-remote的输出,但它确实不值得努力. 就个人而言,对于可重现的构建,我只是每次都在一个干净的目录中启动构建. dir = $(mktemp -d); cd $dir; git init; git remote add …等等.这样,您还可以轻松地将此脚本移动到其他计算机.为了加速初始提取,您可以通过echo $permanent_git_directory / .git / objects>告诉临时目录从永久本地目录中查找git对象. .git / objects / info / alternates(man gitrepository-layout获取更多信息). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |