首页 > 解决方案 > 试图在 gitlab 管道中推回

问题描述

我是 ci 流程的新手。但是我遇到了以下问题:当我创建一个新版本的包时,在管道执行期间,它会更新文件中的记录。我需要做一个 git push,但我遇到了不同的问题并且对使用哪些令牌感到困惑。我们有自己的带有 gitlab 的服务器,它运行管道。

function try_push_back() {
  git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@$CI_SERVER_HOST/$CI_PROJECT_PATH.git
  cd "$CI_PROJECT_NAME"

  git config --global user.email "${GITLAB_USER_EMAIL}"
  git config --global user.name "${GITLAB_USER_NAME}"

  echo "$CI_JOB_ID" > output.txt
  git add output.txt
  git commit -m "[skip ci] Updating output.txt with latest CI_JOB_ID." >&2

  git push "http://${PERSONAL_USERNAME}:${PERSONAL_ACCESS_TOKEN}@$CI_SERVER_HOST/$CI_PROJECT_PATH.git" HEAD:"$CI_COMMIT_REF_NAME" >&2
}

使用以下代码,我得到下一个结果:

结果

标签: gitgitlabgitlab-cigit-push

解决方案


我可以自己修。以下代码对我有用。

  echo "committing version number to sfdx-project.json" >&2
  git remote set-url origin "https://gitlab-ci-token:$PERSONAL_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git"
  git config --global user.email "${GITLAB_USER_EMAIL}"
  git config --global user.name "${GITLAB_USER_NAME}"
  echo "$CI_JOB_ID" > output.txt
  git add output.txt
  git commit -m "[skip ci] Updating output.txt with latest CI_JOB_ID." >&2
  git status
  git push origin HEAD:"$CI_COMMIT_REF_NAME" >&2

推荐阅读