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 什么值?
我正在使用Hosted Gitlab来托管我的Git存储库,最近我一直在使用它来构建/部署PHP和Java应用程序到服务器.
我想要做的是一旦构建完成,使用SSH部署应用程序.有时这可能只是通过SSH将最终构建(PHP文件)的内容上传到服务器,或者有时可能上传已编译的.jar文件,然后在远程服务器上执行命令以重新启动服务.
我已经将自己的Docker容器设置为构建环境,这包括Java,PHP,Composer和Maven等所有构建完成所需的东西.我正在使用此图像来运行构建.
我想知道的是,我如何通过SSH连接外部服务器以执行我可以在gitlab-ci.yaml文件中指定的部署命令?
我正在尝试实施GitLab CI Pipelines来构建和部署Angular应用程序.在我们的项目中,我们有两个一般分支:( master仅限生产)和develop.为了开发,我们feature/some-feature从develop分支创建分支.当开发完成后,我们创建合并请求feature/some-feature到develop.当合并请求被批准并合并到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文件.
我终于设法让它工作,所以当你推动分支工作将启动,但我一直在等待它启动大约3分钟,然后我有错误,我需要修复,然后再次提交,然后再等一等.我怎样才能直接对那个公共参赛者进行测试并在bash中测试.gitlab-ci.yml"script"部分?
我有多个工作使用单个外部资源(服务器)。第一个作业将应用程序部署到环境中,第二个作业在此环境中执行测试,第三个作业在此环境中执行集成测试。
我知道有资源组选项。但它只锁定工作。如果两个管道同时运行,我需要从第一个管道执行job1, job2,job3并且只有当第一个管道释放资源时 - 第二个管道才能启动jobs1-3。有没有办法实现这一目标?管道中还有其他工作 - 它们应该同时工作。
在我的 gitlab 管道中,我想将总百分比值发送到服务器。但是 jest --coverage 只给了我 /coverage 中的这些大型报告文件。我似乎无法从中解析出总价值。我错过了一个参数吗?
我正在 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 部署某些内容时收到错误。
$ 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
我正在使用gitlab CI runner来测试我的代码并生成一些文件.我只是想通过CI runner将生成的文件推送到gitlab存储库.有没有办法做到这一点?
是否有可能覆盖全球before_script使用空before_script作业中?