我有 GitLab 管道,我可以在其中从存储库获取文件、更新文件中的数据并希望将其推回原点
这是我的管道文件
variables:
NUGET_URL: ********
GITLAB_BASE_URL: ******
GITLAB_ENDPOINT: ********
MAJOR_VERSION: ********
stages:
- publish-nuget-package
step-publish-nuget-package:
stage: publish-nuget-package
image: mcr.microsoft.com/dotnet/core/sdk:3.1
before_script:
- dotnet tool install --global dotnet-ef
- export PATH="$PATH:/root/.dotnet/tools"
- dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
- dotnet codeartifact-creds install
script:
- apt-get update -y
- apt-get upgrade -y
- apt-get dist-upgrade -y
- apt-get -y autoremove
- apt-get clean
- apt-get -y install git
- git config --list
- x=$(awk '{print $2}' ./package-version.txt)
- ((x++))
- echo "${x}"
- echo "VERSION_NUMBER:\ ${x}" > ./package-version.txt
# - latestTag=$(git describe --abbrev=0 --tags)
# - echo "$latestTag"
# - ((latestTag++))
# - git tag ${latestTag} --force
- git remote set-url origin $GITLAB_BASE_URL$API_TOKEN$GITLAB_ENDPOINT
- git remote -v
- git push origin ./package-version.txt --force -o ci.skip
# - git tag
- cd Monspire.EmailSender.Contracts
- dotnet pack -c Release /p:Version=$MAJOR_VERSION."${x}"
- echo "VERSION_NUMBER:\ ${x}" > ./package-version.txt
- cd Monspire.EmailSender.Contracts/bin/Release/
- dotnet nuget push Monspire.EmailSender.Contracts.$MAJOR_VERSION."${x}".nupkg --source $NUGET_URL
environment: development
tags:
- monspire
only:
- versioning
在这行 - git push origin package-version.txt --force -o ci.skip
我收到这个错误
$ git push origin ./package-version.txt --force -o ci.skip 致命:无效的 refspec './package-version.txt'
我需要如何解决这个问题?
答案 0 :(得分:0)
你在那里做什么很奇怪你正在更新、升级、dist-upgrading autoremoving 包。这是一场真正的战争。 至少我永远不会自动执行 dist-upgrading,因为 dist-upgrade 还可以添加一个新内核,而所有这些都在“不要问我-只是做-它”模式(-y)中非常有趣。最有趣的是,你还安装了 git 最后,然后我问自己你的 gitlab-runner 安装在哪里。但事情就是这样,你永远不会停止学习。
当然你不需要把像“git remote set-url”这样的命令放在你自动执行的管道中,也不需要每次都指定来源,因为你的Git记住了来源。>
- git init
- git remote set-url --push <name> <url>
通常,您必须在添加源之前初始化您的存储库。 这应该不成为管道的一部分。管道的用途是部署您的更改、进行测试或构建产品 因此,您首先将您所做的更改添加到本地工作区存储库,然后开始编辑您的管道
- git add .
这会添加所有修改过的文件,但如果您只想添加一个文件...
- git add -A -- C:\Users\Eugene\Workspace\Project\package-version.txt
然后你只需推(到)原点。不需要指定文件,这是git add的工作
- git push
或者如果你有不同分支名称的复杂情况
- git push origin branch_here:branch_there
并验证询问状态
- git status
或使用 -u 向您显示要提交的未跟踪更改
这就是魔法