如何从 Bamboo Script 任务中执行 git 推送
How to do a git push from within a Bamboo Script task
我们将 git 视为一些配置和 csv 文件的数据库。我有一个 Bamboo 计划,我在其中签出一些代码(来自 Stash),运行 一个节点脚本并生成一些 csv 文件。
我需要能够 'git push' 这些到某个存储库。
我有一个脚本任务,我正在写这样的东西 -
git remote add central ssh://git@stashRepoUrl:port/xyz.git
git config --global user.name "Bamboo"
git config --global user.email "bamboo@xyz.com"
git add src/main/resources/lookups/main/common/*
git add src/main/resources/lookups/main/reference/*
git commit -m "FROM BAMBOO JOB"
git push -u central featureBranchName
我收到以下错误 - 主机密钥验证失败。
如何在我的存储库和这个 'bamboo agent' 之间设置 ssh?我相信有人可能已经尝试过了。
谢谢!
您需要手动执行(一次),使用您的脚本使用的帐户:
ssh -T git@stashRepoUrl -p port
这将触发您回答“是”的问题(以更新 ~/.ssh/known_hosts
)
然后你的脚本就可以继续了。
请注意,我还会手动设置行:
git remote add central ssh://git@stashRepoUrl:port/xyz.git
您只需使用该命令一次,而不是每次运行脚本时都使用。
atlassian confluence 中有文档如何在构建期间提交到 Git 回购协议
参考这个link
https://confluence.atlassian.com/bamkb/how-to-commit-to-a-git-repo-during-a-build-720641378.html
作为 VonC 答案的更新,您可以将其放入脚本中,如果您使用:
ssh -T git@stashRepoUrl -p port -oStrictHostKeyChecking=no
如果您正在使用 docker 或完全清理代理,这将自动接受相关机器的证书。
我们将 git 视为一些配置和 csv 文件的数据库。我有一个 Bamboo 计划,我在其中签出一些代码(来自 Stash),运行 一个节点脚本并生成一些 csv 文件。 我需要能够 'git push' 这些到某个存储库。 我有一个脚本任务,我正在写这样的东西 -
git remote add central ssh://git@stashRepoUrl:port/xyz.git
git config --global user.name "Bamboo"
git config --global user.email "bamboo@xyz.com"
git add src/main/resources/lookups/main/common/*
git add src/main/resources/lookups/main/reference/*
git commit -m "FROM BAMBOO JOB"
git push -u central featureBranchName
我收到以下错误 - 主机密钥验证失败。
如何在我的存储库和这个 'bamboo agent' 之间设置 ssh?我相信有人可能已经尝试过了。
谢谢!
您需要手动执行(一次),使用您的脚本使用的帐户:
ssh -T git@stashRepoUrl -p port
这将触发您回答“是”的问题(以更新 ~/.ssh/known_hosts
)
然后你的脚本就可以继续了。
请注意,我还会手动设置行:
git remote add central ssh://git@stashRepoUrl:port/xyz.git
您只需使用该命令一次,而不是每次运行脚本时都使用。
atlassian confluence 中有文档如何在构建期间提交到 Git 回购协议
参考这个link https://confluence.atlassian.com/bamkb/how-to-commit-to-a-git-repo-during-a-build-720641378.html
作为 VonC 答案的更新,您可以将其放入脚本中,如果您使用:
ssh -T git@stashRepoUrl -p port -oStrictHostKeyChecking=no
如果您正在使用 docker 或完全清理代理,这将自动接受相关机器的证书。