我正在编写一个通过CI添加文档的脚本。我有一个主repo,我想将新文档推送到它,所以需要创建一个新分支并在那里添加这些更改。
- name: push gitlab documentation
shell: |
git init
git checkout -b newdocs
git remote add origin https://gitlab-ci-token:{{ gitlab_token }}@{{gitlab.relative_url}}/{{create_repo_response.project.path_with_namespace}}.git
git config pull.ff only
git add .
git commit -m "adding new documentation"
git push -u origin master
git push
命令是我认为有问题的地方。
stderr":"切换到新分支"newdocs"\n错误:src refspecmaster不匹配任何错误:无法将某些引用推送到"sample_git_url.git"stderr_lines":["切换到新的分支"newdocs"错误:src-refspec-master与任何"错误:未能将某些引用推送到"sample_git_url.git";]
我的最终目标是将我的文档推送到master,但在推送时遇到问题。
您可以在以下管道脚本中看到git clone
/git switch
(Git 2.23+,否则为git checkout
(/git push
的示例:
integration_test:
image: devth/helm:v3.6.3
stage: integration_test
script:
- wget -q https://github.com/mikefarah/yq/releases/download/v4.14.2/yq_linux_amd64.tar.gz -O - | tar xvfz - && chmod +x yq_linux_amd64
- export CHART_VERSION=$(./yq_linux_amd64 eval .version chart/Chart.yaml)
- export BRANCH_NAME="auto-update-${SERVICE_NAME}-${CHART_VERSION}"
- git config --global user.email "gitlab@eox.at"
- git config --global user.name "gitlab"
- git clone https://${VS_DEPLOYMENT_GIT_REPOSITORY_CREDENTIALS}@gitlab.eox.at/vs/vs-deployment.git
- cd vs-deployment
- git switch -c "${BRANCH_NAME}"
# bump version in Chart.yaml
- ../yq_linux_amd64 eval "( .dependencies[] | select(.name == "${SERVICE_NAME}") | .version ) = "${CHART_VERSION}"" --inplace Chart.yaml
- helm dependency update
- git add charts/*
- git commit --all -m "Bump ${SERVICE_NAME} to ${CHART_VERSION}"
- git push --set-upstream origin "${BRANCH_NAME}"
only:
- tags
你可以根据你的情况调整它,并以这种方式推送你的文档。