GitLab CI/CD在构建ASP.NET核心之前从存储库中提取代码
我在计算机A上运行GitLab,在计算机B上运行开发环境Visual studio Pro,在计算机C上运行Windows Server。 我在计算机C Windows server上设置了GitLab Runner。我还设置了.gitlab-ci.yml文件,以便在每次提交时为ASP.NET核心应用程序执行构建和运行测试 我不知道如何在计算机C Windows server上获取代码,以便构建它。dotnet msbuild/p:Configuration=Release%SOLUTION%。我在网上找到的.gitlab-ci.yml示例中,没有一个在构建应用程序之前不从gitlab中提取代码,这让我感到困扰。为什么? 以下是设置CI/CD的正确方法: 用户创建拉请求创建新分支 用户编写代码 用户从计算机B向分支提交代码。 GitLab runner已在计算机C上启动。 它需要从当前分支提取代码 构建、测试、部署。。。 我应该使用commongit命令来获取代码,还是GitLab运行程序已经这样做了?密码在哪里 为什么没有人在.GitLab-ci.yml中从GitLab提取代码 编辑: 我犯了一个错误 “git”未被识别为内部或外部命令 。我的解决方案是重启GitLab Runner @米兰维达科维奇解释说,源代码是自动下载的,我不知道。 我还有一个问题,就是如何获得.sln文件的正确路径。 这是我完整的.gitlab-ci.yml文件: 我需要为解决方案设置正确的变量。GitLab Runner所在的My dir当前包含以下文件夹/文件:GitLab CI/CD在构建ASP.NET核心之前从存储库中提取代码,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我在计算机A上运行GitLab,在计算机B上运行开发环境Visual studio Pro,在计算机C上运行Windows Server。 我在计算机C Windows server上设置了GitLab Runner。我还设置了.gitlab-ci.yml文件,以便在每次提交时为ASP.NET核心应用程序执行构建和运行测试 我不知道如何在计算机C Windows server上获取代码,以便构建它。dotnet msbuild/p:Configuration=Release%SOLUTION%。
- config.toml
- gitlab-runner.exe
- builds/
- 7cab42e4/
- 0/
- web/ # I think this is project group in GitLab
- test/ # I think this is project name in GitLab
- .sln
- AND ALL OTHER PROJECT FILES #Based on first look
- testm.tmp
那么,什么是7cab42e4,0。或者更好的方法是如何获得项目结构的正确路径?是否有任何预定义的变量
编辑2:
答案是 我不确定我是否完全听懂了 每次提交时,Gitlab runner都会将您的存储库提取到C:\Gitlab runner\builds。。在本地计算机C上,构建/部署或执行您作为舞台动作提供的任何操作 此外,我认为没有必要再次构建源代码。如果您将计算机C用于runner和测试/验收,只需让runner进行构建并在.gitlab-ci.yaml中添加工件项即可。工件中定义的路径将保留计算机C上的可执行文件,然后您可以将其用于任何目的 希望能有帮助 评论后编辑: 推送到存储库时,Gitlab CI/CD会自动检查根文件夹中的.Gitlab-CI.yaml文件。如果在那里,运行程序将接管、解析文件并开始执行作业/阶段 一旦文件本身有效并且包含正确的作业和阶段,runner就会自动获取最新的提交,并执行脚本项要求它执行的任何操作 要验证一切工作是否正常,请转到Gitlab->CI/CD->Pipelines,查看发生了什么。您应该看到如下内容:
如果你发布了你的.yaml文件,可能会有很多原因导致你的跑步者没有收到代码。例如,您的.yaml标记可能与创建的runner拾取的内容不匹配。谢谢。我担心我的职位不清楚。问题是我的GitLab Runner并没有在计算机C上获取存储库的当前分支,或者它获取了?我想不是。我没有下这样的命令。这是自动完成的吗?或者我必须使用git fetch命令?您编辑的答案已经回答了我的问题。我只有一个问题,如何获得项目结构的路径。我编辑了我的问题。你知道如何获得项目结构的路径吗?你是说.yaml中的$CI_project_DIR吗?是的,你赢了我10秒钟。很高兴这有帮助。
- config.toml
- gitlab-runner.exe
- builds/
- 7cab42e4/
- 0/
- web/ # I think this is project group in GitLab
- test/ # I think this is project name in GitLab
- .sln
- AND ALL OTHER PROJECT FILES #Based on first look
- testm.tmp