标签: gitlab-ci

删除或重置Gitlab CI构建

是否可以在Gitlab CI中删除旧版本?我测试了一些东西,现在有大约20个无用的构建(大多数都失败了).它还显示了我不再拥有的阶段,这些阶段使Pipelines页面变得混乱,并且一些上传的工件有点大.

我无法在此找到任何文档,只是在设置中禁用CI不会删除构建.

使用Gitlab 8.10社区(由Gitlab.com主办)

gitlab-ci

19
推荐指数
1
解决办法
1万
查看次数

通过CI runner将文件推送到gitlab-ci

我正在使用gitlab CI runner来测试我的代码并生成一些文件.我只是想通过CI runner将生成的文件推送到gitlab存储库.有没有办法做到这一点?

gitlab gitlab-ci gitlab-ci-runner

19
推荐指数
4
解决办法
1万
查看次数

19
推荐指数
2
解决办法
4837
查看次数

gitlab-ci.yml - 覆盖特定作业和脚本执行

我有一个.gitlab-ci.yml文件说:

include:
  - project: 'my-proj/my-gitlab-ci'
    ref: master
    file: '/pipeline/gitlab-ci.yml'
Run Code Online (Sandbox Code Playgroud)

由于一些“不便”,我想覆盖在gitlab-ci.yml注入我的顶级.gitlab-ci.yml文件的上述文件中定义的某些特定阶段。plan我感兴趣的阶段有以下内容:

plan-dummy:
  stage: plan
  script:
    - terraform plan -lock=false -var-file=vars/vars.tfvars
Run Code Online (Sandbox Code Playgroud)

我想要做的是覆盖主.gitlab-ci.yml文件上的上述内容,以便仅将脚本作为覆盖执行:

plan-dummy:
  stage: plan
  script:
    - terraform refresh   # This is the line I want to add as an additional step before next 
    - terraform plan -lock=false -var-file=vars/dev.tfvars
Run Code Online (Sandbox Code Playgroud)

如何在不摆弄注入文件的情况下实现这一目标?是的,我知道替代方法是从子文件中进行脏复制粘贴,但我不想这样做。

问候,

gitlab gitlab-ci

19
推荐指数
2
解决办法
3万
查看次数

如何避免在Gitlab CI中重新安装每个作业的依赖项

我正在使用Gitlab CI 8.0和gitlab-ci-multi-runner 0.6.0.我有一个.gitlab-ci.yml类似于以下的文件:

before_script:
  - npm install

server_tests:
  script: mocha

client_tests:
  script: karma start karma.conf.js
Run Code Online (Sandbox Code Playgroud)

这有效,但这意味着在每个测试作业之前独立安装依赖项.对于具有许多依赖项的大型项目,这会增加相当大的开销.

在Jenkins中,我将使用一个作业来安装依赖项,然后对它们进行TAR,然后创建一个构建工件,然后将其复制到下游作业.类似的东西可以与Gitlab CI一起使用吗?有推荐的方法吗?

gitlab-ci gitlab-ci-runner

18
推荐指数
4
解决办法
1万
查看次数

如何通过SSH为Gitlab运行器启用克隆?

我在Windows Gitlab运行器上通过HTTP克隆大型存储库时遇到了一些麻烦.我已经尝试了几种方法来做浅克隆或禁用克隆压缩.仍然没有运气.

通过SSH克隆相同的存储库非常适合作为临时解决方案,我希望在我们的Gitlab CI过程中实现这一点.

现在问题就在于我不知道如何使用SSH作为gitlab-multi-runner的克隆方法.它似乎只是使用HTTP作为默认值,我唯一关于克隆的选项是它是完成克隆还是获取.

CI/CD显示

有人可以解释我如何通过SSH而不是HTTP来使克隆/获取工作在跑步者身上?

Gitlab版本:GitLab社区版8.10.7

谢谢!

git ssh gitlab gitlab-ci gitlab-ci-runner

18
推荐指数
2
解决办法
1万
查看次数

在 GitLab CI 中将环境变量从一个阶段导出到下一个阶段

有没有办法export在 GitLab CI 中将环境变量从一个阶段转移到下一个阶段?我正在寻找类似于作业工件功能的东西,仅适用于环境变量而不是文件。

假设我正在一个configure阶段配置构建,并希望将结果存储为(秘密的、受保护的)环境变量以供下一个阶段使用。我可以保护文件中的配置并将它们存储为作业工件,但我担心文件中提供的秘密可以供所有人下载。

environment-variables gitlab gitlab-ci

18
推荐指数
3
解决办法
2万
查看次数

gitlab ci:手动或仅在master时运行构建作业

是否可以使用以下要求定义构建作业的gitlab-ci文件:

  • 手动OR时执行
  • 由主推送执行

我想到了类似的东西,但这是错误的:

build_jar:
stage: build
script:
  - echo "build jar"
artifacts:
  paths:
    - jar/path/*.jar
only:
  - master
when: manual
Run Code Online (Sandbox Code Playgroud)

对我来说,唯一的解决方案是拥有两个作业,一个用于主推,一个用于手动输入.但缺点是,在gitlab中它变得令人困惑

jobs gitlab gitlab-ci

18
推荐指数
5
解决办法
1万
查看次数

有没有办法在gitlab中自动合并分支?

在我的 gitlab 项目中有 3 个主要分支:develop、stage 和 master。

每次将更新的代码推送到开发分支时,我都必须将其合并到阶段分支,然后再次手动将其合并到主分支。

这看起来效率不高。

有没有办法在不冲突的情况下自动合并分支?

此外,可以使用名为“gitlab-ci.yml”的文件进行自动合并,例如

# merge develop branch to stage branch
merge-to-stage:
    only:
    - develop
    script:
    - merge (develop) to (stage) << something like this

# merge stage branch to master branch when the job above is completed
stage-to-master:
    only:
    - stage
    script:
    - merge (stage) to (master) << something like this

Run Code Online (Sandbox Code Playgroud)

请给我您的好意建议。

git gitlab gitlab-ci

18
推荐指数
1
解决办法
2万
查看次数

GitLab Runner 突然无法使用 Docker Machine 和 AWS Autoscaling 运行作业

我使用 GitLab Runner 在 AWS EC2 Spot 实例上运行 CI 作业,并使用 Docker Machine 的自动缩放功能。

突然,今天 GitLab CI 无法运行作业,并向我显示了我想要启动的所有作业的以下作业输出:

Running with gitlab-runner 14.9.1 (f188edd7)
  on AWS EC2 runner ...
Preparing the "docker+machine" executor
10:05
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Job failed (system failure): exit status 1
Run Code Online (Sandbox Code Playgroud)

我在 AWS 控制台中看到 EC2 …

amazon-web-services docker gitlab-ci gitlab-ci-runner docker-machine

18
推荐指数
1
解决办法
6810
查看次数