标签: gitlab-ci

什么是特殊的gitlab-ci-token用户?

gitlab的容器注册表(https://gitlab.com/help/container_registry/README.md)的文档提供了一个配置示例,其中包含以下指令:

- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.example.com

而这个解释:

You have to use the credentials of the special gitlab-ci-token user with its password stored in $CI_BUILD_TOKEN in order to push to the Registry connected to your project. This allows you to automated building and deployment of your Docker images.

我找不到关于这个特殊gitlab-ci-token用户的任何文档,也没有关于$CI_BUILD_TOKENvar的文档.

这个特殊用户是什么?它是自动可用的吗?是否必须在某处定义?应该给$CI_BUILD_TOKENvar 什么值?

gitlab docker gitlab-ci gitlab-ci-runner

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

Gitlab CI如何通过SSH部署应用程序

我正在使用Hosted Gitlab来托管我的Git存储库,最近我一直在使用它来构建/部署PHP和Java应用程序到服务器.

我想要做的是一旦构建完成,使用SSH部署应用程序.有时这可能只是通过SSH将最终构建(PHP文件)的内容上传到服务器,或者有时可能上传已编译的.jar文件,然后在远程服务器上执行命令以重新启动服务.

我已经将自己的Docker容器设置为构建环境,这包括Java,PHP,Composer和Maven等所有构建完成所需的东西.我正在使用此图像来运行构建.

我想知道的是,我如何通过SSH连接外部服务器以执行我可以在gitlab-ci.yaml文件中指定的部署命令?

gitlab gitlab-ci

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

仅限特定分支上的GitLab CI管道

我正在尝试实施GitLab CI Pipelines来构建和部署Angular应用程序.在我们的项目中,我们有两个一般分支:( master仅限生产)和develop.为了开发,我们feature/some-featuredevelop分支创建分支.当开发完成后,我们创建合并请求feature/some-featuredevelop.当合并请求被批准并合并到develop分支时,我想运行管道以构建应用程序并在某些环境中部署构建.

我在.gitlab-ci.yml中使用以下设置:

image: node:7.5-configured

stages:
    - build
    - deploy

build_job:
    stage: build
    only:
        - develop
    script:
        - /bin/bash <some script here>

...
Run Code Online (Sandbox Code Playgroud)

问题是每次我进入任何feature/some-feature分支时都会执行Pipeline .我的设置有什么问题?我怎样才能迫使管道被执行只有当推进行到develop直接分支?

解决方案 这是我的错误 - 我在develop分支和feature/some-feature分支中有两个不同的.gitlab-ci.yml文件.

git continuous-integration pipeline gitlab gitlab-ci

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

我该如何测试gitlab-ci.yml?

我终于设法让它工作,所以当你推动分支工作将启动,但我一直在等待它启动大约3分钟,然后我有错误,我需要修复,然后再次提交,然后再等一等.我怎样才能直接对那个公共参赛者进行测试并在bash中测试.gitlab-ci.yml"script"部分?

gitlab-ci

20
推荐指数
5
解决办法
2万
查看次数

是否可以跨多个 gitlab 管道“锁定”一组作业

我有多个工作使用单个外部资源(服务器)。第一个作业将应用程序部署到环境中,第二个作业在此环境中执行测试,第三个作业在此环境中执行集成测试。

我知道有资源组选项。但它只锁定工作。如果两个管道同时运行,我需要从第一个管道执行job1, job2job3并且只有当第一个管道释放资源时 - 第二个管道才能启动jobs1-3。有没有办法实现这一目标?管道中还有其他工作 - 它们应该同时工作。

gitlab gitlab-ci

20
推荐指数
1
解决办法
1051
查看次数

开玩笑的报道:我怎样才能获得报道的总百分比?

在我的 gitlab 管道中,我想将总百分比值发送到服务器。但是 jest --coverage 只给了我 /coverage 中的这些大型报告文件。我似乎无法从中解析出总价值。我错过了一个参数吗?

gitlab-ci jestjs

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

运行 gitlab 管道时,Gitlab CI CD 变量不会被注入

我正在 gitlab-ci.yml 文件中运行以下代码部分:

  script:
- pip install --upgrade pip
- cd ./TestAutomation
- pip install -r ./requirements.txt
Run Code Online (Sandbox Code Playgroud)

以下是键和值。所以我必须将任何值传递到管道,并将 key 作为变量 ENV : dev

我通过扩展将上述三个变量添加到了 GitLab CI CD 变量部分。只是添加了一个值和键

我还发现我们可以在 .yml 文件本身中添加变量,如下所示。我不知道如何为一个键添加多个值

variables:
 TEST:
   value: "some value" # this would be the default value
   description: "This variable makes cakes delicious"
Run Code Online (Sandbox Code Playgroud)

当我运行管道时,我收到错误,因为看起来这些变量和值没有正确注入。

更多细节:

我在运行管道时遇到同样的错误。因此,我怀疑当我通过管道运行时,类别变量没有正确注入

如果需要,我会将其显示在共享屏幕上

我观察到的是——与我作为参数或变量传递的键关联的值,这些值不会被注入或替换,而不是键。所以理想情况下 ${Category} 应该替换为 value Smoke 等

gitlab gitlab-ci python-3.8 cicd

20
推荐指数
3
解决办法
4万
查看次数

AWS Cloudfront 错误?部署时失效的最大次数?

我在从 gitlab 部署某些内容时收到错误。

$ aws cloudfront create-invalidation --distribution-id=EVB1B2B3B4B56 --paths "/*"
**An error occurred (ServiceUnavailable) when calling the CreateInvalidation operation (reached max retries: 2): CloudFront encountered an internal error. Please try again.**
Run Code Online (Sandbox Code Playgroud)

我通过从 AWS 控制台手动创建失效来解决这个问题,并且它有效。这种情况有时会发生导致这个错误,当时我是手动做的。永久的解决方案是什么?请帮我解决这个问题。

amazon-s3 amazon-web-services amazon-cloudfront gitlab gitlab-ci

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

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

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

gitlab gitlab-ci gitlab-ci-runner

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

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