gpt4 book ai didi

.net - 如何在 gitlab 的 .net 解决方案构建管道中运行 git 命令

转载 作者:行者123 更新时间:2023-12-02 19:18:13 24 4
gpt4 key购买 nike

我有一个 .net 存储库,它依赖于另一个存储库,所以我使用另一个存储库作为子模块。

我正在使用这个 docker 镜像来构建存储库

image: mcr.microsoft.com/dotnet/framework/sdk

但是要使用子模块,我必须获得最新的子模块,这可以使用像这样的 git 命令来完成
before_script:
- git submodule sync --recursive
- git submodule update --init --recursive

但 git 命令在 docker 镜像中不可用,因此无法说出 git is not recognized
谁能帮助我应该怎么做才能让 git 可用?

我尝试了很多事情,比如将构建分为两个阶段,并尝试对 git 等使用不同的 docker 镜像,但没有什么能完全满足我的要求。

更新

这是 .gitlab-ci.yml包含 jmaitrehenry 的解决方案的文件在他的回答中建议
stages:
- build


variables:
GIT_SUBMODULE_STRATEGY: recursive

before_script:
- docker build -t git-for-windows-issue

# Build
Build:
image: mcr.microsoft.com/dotnet/framework/sdk
stage: build
script:
- echo Ok
only:
- branches
tags:
- windows-runner
environment:
name: development

但这也给出了这个错误

docker : The term 'docker' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

最佳答案

如果你的 gitlab 运行器不是太旧(v1.10+),你可以在你的管道中添加这个:

variables:
GIT_SUBMODULE_STRATEGY: recursive

这样,gitlab 将在克隆/准备项目时为您进行同步和更新。

如果不能,则需要在镜像中安装 git。你可以查看这个 repo 来帮助你在 windows 上使用 git: https://github.com/StefanScherer/dockerfiles-windows/tree/master/git-for-windows-issue
您可以将其添加到 before_script:
before_script:
- Invoke-WebRequest 'https://github.com/git-for-windows/git/releases/download/v2.15.1.windows.2/MinGit-2.15.1.2-busybox-64-bit.zip' -OutFile 'mingit.zip' -UseBasicParsing
- Expand-Archive mingit.zip -DestinationPath c:\mingit ; \
- Remove-Item mingit.zip -Force ; \
- c:\mingit\cmd\git.exe submodule sync --recursive
- c:\mingit\cmd\git.exe submodule update --init --recursive

Gitlab 文档: https://docs.gitlab.com/ee/ci/git_submodules.html
如何在 Windows 上安装 git:

关于.net - 如何在 gitlab 的 .net 解决方案构建管道中运行 git 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61959465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com