好吧,我在我的 Digital Ocean VPS 中创建了一个私人跑步者。这个私人跑步者正在使用shell executor,这是我的 gitlab-ci.yml 文件:
variables:
VERSION_NAME: ${CI_COMMIT_REF_NAME}-${CI_CONCURRENT_ID}
before_script:
- docker info
stages:
- test
- build
- deploy
- delivery
test_project:
tags:
- safepark
stage: test
image: mcr.microsoft.com/dotnet/core/sdk:2.1
script:
- dotnet test
build_image:
tags:
- safepark
only:
- master
stage: build
script:
- docker build -f WebApi/Dockerfile -t myuser/myimage
- docker tag -t myuser/myimage myuser/myimage:${VERSION_NAME}
push_image:
tags:
- safepark
only:
- master
stage: deploy
script:
- docker push myuser/myimage
- docker push myuser/myimage:${VERSION_NAME}
Run Code Online (Sandbox Code Playgroud)
但在“测试”阶段,图像永远不会被拉出,我得到“dotnet …
我想获取 gitlab 环境变量并在 build.gradle 脚本中使用它。我在gitlab-ci中定义了变量:
build:
stage: build
variables:
TEST: "HELLO WORLD"
script:
- export
Run Code Online (Sandbox Code Playgroud)
另外,我使用 -export 命令来打印所有变量。我在 gitlab 作业控制台中看到了我的 TEST 变量。但是当我试图在 build.gradle 中获取这个变量时,它是空的。这是build.gradle代码片段:
if (System.getenv('TEST') != null) {
repositories {
println 'CI=' + System.getenv('CI')
println 'M- ' + System.getenv('MAVEN_REPO_USER')
println 'T- ' + System.getenv('TEST')
println 'CI_JOB_STAGE ' + System.getenv('CI_JOB_STAGE')
mavenCentral()
}
} else {
repositories {
println '*CI= ' + System.getenv('CI')
println '*MAven ' + System.getenv('MAVEN_REPO_USER')
println '* ' + System.getenv('CI_JOB_STAGE')
println 'T-+++ ' + System.getenv('TEST')
mavenCentral()
mavenLocal()
} …Run Code Online (Sandbox Code Playgroud) 这可能是一件很小的事情。我注意到有人在互联网上打字,-B而不是-b在切换到新分支时打字。
git checkout -B new_branch
Run Code Online (Sandbox Code Playgroud)
这意味着什么?我们什么时候使用大写 B。如果-D我们用大写 D 标志强制删除。资本 B 会发生什么?
Force deletion:
git branch -D local_branch
Run Code Online (Sandbox Code Playgroud)
我尝试查看这些很棒的git Flight Rules,但没有找到任何内容。
任何帮助,将不胜感激。
我的管道有 3 个阶段,所有 3 个阶段中的每个作业都创建一个 xml 数据文件。这些作业并行运行。
我想在第四阶段合并所有 xml 数据文件。下面是我的yml代码
stages:
- deploy
- test
- execute
- artifact
script:
- XYZ
artifacts:
name: datafile.xml
paths:
- data/
Run Code Online (Sandbox Code Playgroud)
问题:我如何收集以前作业中的所有 xml 来合并它?文件名是唯一的。
当尝试使用 gitlab 克隆 git 帐户时,
git克隆 git@gitlab.com:用户名/project.git
面对以下错误,
git@gitlab.com:权限被拒绝(公钥)。致命:无法从远程存储库读取。
gitlab 是使用我的 custom.pub 公共 ssh 密钥注册的。Windows 客户端 PC 的私钥和公钥都存储在“C:/Users/username/.ssh”中。
如何修复此故障
我正在尝试使用 GitLab Maven 包注册表将 GitLab 项目设置为所有其他项目的远程 Maven 存储库。我已将所有依赖项 jar 文件上传到包注册表。所有 jar 文件都已使用 maven 的部署功能上传。我现在尝试将此项目的包注册表设置为所有其他项目的远程 Maven 存储库。包注册表本身的每个单独的工件页面中提供了必要的存储库设置,如下所示:
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
</snapshotRepository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
然而,即使将其添加到其他项目的 pom.xml 中,它们的构建也会因依赖项不可用而失败。似乎该项目的包注册表无法从其他项目访问。我在这里做错了什么?我还需要采取任何其他步骤吗?
dependencies repository maven gitlab github-package-registry
我在 dev 分支中做了一些更改,提交并推送 ( git push origin dev) 并从 gitlab 前端创建了一个新的合并请求。但现在我想在同一合并请求中修改 1 个文件而不引发新的文件。我可以删除远程上的开发分支并在本地更改该文件,然后再次提交并推送为git push origin dev. 这会损害我当前的合并请求吗?
我的公司有一个自托管的 GitLab 服务器。我正在编写一个 Ansible 剧本,它使用 GitLab 服务器中的多个项目来配置服务器。
为了让目标服务器自动(非交互式)克隆项目,我使用了部署令牌。
首先,在我们的 GitLab 服务器的 Web 界面上,我进入我的第一个项目并为其生成了一个部署密钥。我可以将目标服务器配置为使用 ansible 的部署密钥,如下所示:
- name: Have git store credentials on disk
community.general.git_config:
name: credential.helper
scope: global
value: store
- name: Add credentials for project A
copy:
dest: /root/.git-credentials
content: "https://{{ gitlab_project_A_deploy_username }}:{{ gitlab_project_A_deploy_password }}@company_gitlab_server.com"
- name: Clone Project A git repo
git:
repo: 'https://company_gitlab_server.com/USER/Project_A.git'
dest: /some/dir/
Run Code Online (Sandbox Code Playgroud)
我设置gitlab_project_A_deploy_username并gitlab_project_A_deploy_password在 ansible 保险库中。这很有效,除了在 中/root/.git-credentials,凭据不是特定于 git-repo 的 - 它们是特定于服务器的。
当我获得项目 B 的部署密钥时,它具有完全不同的用户名和密码,但服务器是相同的。即使我将两组凭据添加到ansible/root/.git-credentials模块git,甚至只是常规git …
我在 GitLab 中有 4 个存储库,名为 Repo1、Repo2、Repo3 和 Repo4
现在我如何使用 GitLab api 为所有 Repo 的 master 分支创建标签 v1.0 ?
我正在尝试 gitlab,它看起来很有前途。我遇到了一个巨大的问题,似乎整个互联网上没有人知道如何解决这个问题。
我添加了一个 Maven 项目(只有一个 pom.xml)项目,我想将其部署到包注册表中。如果我在家用计算机上执行此操作,则很简单。我只是将部署令牌添加到我的settings.xml 中并执行mvn deploy.
我想在每次构建时都对包注册表进行 Maven 部署,因此当我提交并推送代码时,它需要构建。问题是,如何将 Deploy 令牌传递到管道?简而言之,我想自动部署 Maven 库/依赖项,以便其他项目可以使用该依赖项。这就是它应该如何工作,但是在 gitlab 中完全没有记录如何做到这一点,而且似乎这个星球上没有人这样做。
简而言之,如何将 Maven 项目部署到项目/组包注册表?
gitlab ×10
git ×5
gitlab-ci ×3
maven ×2
ansible ×1
api ×1
artifact ×1
dependencies ×1
devops ×1
git-archive ×1
github ×1
gitlab-api ×1
gradle ×1
pipeline ×1
repository ×1
ssh ×1