标签: gitlab-ci-runner

如何创建在不同平台上运行的2个作业?

我正在使用Gitlab-ci-multi-runner,使用OSX机器(bash shell)和Windows 7机器(批处理命令).每当我推动时,我都希望它能够在两个跑步者身上进行构建和测试.但显然每个平台的命令需要略有不同.我不想使用码头工具.

我一直在关注http://doc.gitlab.com/ci/yaml/README.html,但似乎没有关于舞台的特定跑步者耦合的任何信息.

gitlab-ci gitlab-ci-runner

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

Gitlab中的Wordpress CI

是否有使用Gitlab CI 实现WorPress (WP_UnitTestCase)的参考?

我已经尝试配置.gitlab-ci.yml,它实现了构建,但是没有运行任何测试。

这是.gitlab-ci.yml文件:

image: php:5.6

variables:
  # Configure mysql service (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: wordpress_tests
  MYSQL_ROOT_PASSWORD: mysql

before_script:
  # Install dependencies
  - bash ci/docker_install.sh wordpress_tests root mysql tutum-wordpress latest

stages:
  - test

# test:PHP5.3:MySQL:
#   image: tetraweb/php:5.3
#   script:
#   - phpunit --configuration phpunit.xml.dist

test:PHP5.4:MySQL:
  image: tetraweb/php:5.4
  services:
  - tutum/wordpress:latest
  script:
  - phpunit --configuration phpunit.xml.dist

# test:PHP5.6:MySQL:
#   image: php:5.6
#   script:
#   - phpunit --configuration phpunit.xml.dist

# test:PHP7:MySQL:
#   image: php:7
#   script:
#   - …
Run Code Online (Sandbox Code Playgroud)

wordpress continuous-integration gitlab gitlab-ci gitlab-ci-runner

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

GitLab runner只执行一个命令

我有以下配置.gitlab-ci.yml:

stages:
- build

build:
  stage: build
  script:
    - npm install -g gulp
    - npm install
    - gulp
Run Code Online (Sandbox Code Playgroud)

但是跑步者只执行第一个命令(npm install -g gulp).它运行第一个命令并报告成功,而不执行其他命令.

构建日志:

Running with gitlab-ci-multi-runner 1.6.1 (c52ad4f)
Using Shell executor...
Running on WINBUILDER...

Fetching changes...

HEAD is now at 2df18c5 Update .gitlab-ci.yml
From https://.../client
   2df18c5..b4efae8  master     -> origin/master
Checking out b4efae85 as master...

$ npm install -g gulp

C:\Users\Administrator\AppData\Roaming\npm\gulp -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js
C:\Users\Administrator\AppData\Roaming\npm
`-- gulp@3.9.1 

Build succeeded
Run Code Online (Sandbox Code Playgroud)

我在阶段中看到了几个使用多个命令的配置示例.我不明白为什么其他命令没有运行.

windows gitlab gitlab-ci gitlab-ci-runner

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

使用 docker:dind + google/cloud-sdk 找不到 docker

docker: command not found在 gitlab-ci 中运行以下 CI 脚本时出现错误。此错误发生在before_script部署阶段。

services:
  - docker:dind

stages:
  - build
  - test
  - deploy

before_script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

build:
  stage: build
  image: docker:latest
  script:
    - docker info
    - docker version
    - docker build --pull -t $SERVICE_NAME:$CI_COMMIT_REF_NAME .
    - docker image list
    - docker tag $SERVICE_NAME:$CI_COMMIT_REF_NAME $CI_REGISTRY_IMAGE/$SERVICE_NAME:$CI_COMMIT_REF_NAME
    - docker push $CI_REGISTRY_IMAGE/$SERVICE_NAME:$CI_COMMIT_REF_NAME

test:
  image: docker:latest
  stage: test
  script:
    - docker pull $CI_REGISTRY_IMAGE/$SERVICE_NAME:$CI_COMMIT_REF_NAME
    - docker image list
    - docker run $CI_REGISTRY_IMAGE/$SERVICE_NAME:$CI_COMMIT_REF_NAME …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner google-cloud-sdk

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

如何将声纳质量门与 Gitlab-CI 集成

我有一个 gitlab-ci 集成,需要声纳分析,如果质量门通过,则构建 docker 图像。

这可以使用 gitlab-ci 吗?

gitlab sonar-runner sonarqube gitlab-ci gitlab-ci-runner

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

kitectl在gitlab-runner环境中使用服务帐户令牌时未经授权

我们gitlab-runner通过kubernetes集群内的kubernetes执行器运行实例(我们称之为KUBE01).这些实例构建并部署到kubernetes集群,并为运行程序提供环境变量KUBECONFIG(指向配置文件),如下所示:

$ cat $KUBECONFIG
---
apiVersion: v1
clusters:
- name: gitlab-deploy
  cluster:
    server: https://KUBE01:6443
    certificate-authority-data: <CA_B64>
contexts:
- name: gitlab-deploy
  context:
    cluster: gitlab-deploy
    namespace: dev
    user: gitlab-deploy
current-context: gitlab-deploy
kind: Config
users:
- name: gitlab-deploy
  user:
    token: gitlab-deploy-token-<secret>
Run Code Online (Sandbox Code Playgroud)

我们可以验证kubectl实际上是否正在使用上述gitlab-deploy上下文:

$ kubectl config current-context
gitlab-deploy
Run Code Online (Sandbox Code Playgroud)

但是,尝试实际影响KUBE01失败:

$ kubectl get pods
error: You must be logged in to the server (Unauthorized)
Run Code Online (Sandbox Code Playgroud)

在我的机器上,我们可以验证命名空间和服务帐户令牌是否正确:

$ kubectl get sa/gitlab-deploy -o yaml --namespace dev
apiVersion: v1
kind: ServiceAccount …
Run Code Online (Sandbox Code Playgroud)

kubernetes gitlab-ci-runner

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

gitlab-runner kubernetes缓存被忽略

我有一个gitlab-runner 10.3.0和kubernetes执行器的kubernetes集群。cache_dir在跑步者的config.toml文件中没有定义。请注意,这与docker executor不同,因此卷解决方案不适用。

在中.gitlab-ci.yml,我将作业配置为使用缓存:

build:
  cache:
    key: "${PROJECT_NAME}"
    paths:
      - "node_modules/"
  script:
    - ls node_modules/ || echo "cache not there"
    - npm i
    - npm build
    - ...
Run Code Online (Sandbox Code Playgroud)

运行此命令时,我看到缓存已被拉出并创建:

Cloning repository for some-branch with git depth set to 1...
Cloning into '/group/projectname'...
Checking out d03baa31 as some-branch...
Skipping Git submodules setup
Checking cache for projectname...
Successfully extracted cache
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
//
// ...work being done here... 
//
Creating cache projectname... …
Run Code Online (Sandbox Code Playgroud)

caching gitlab gitlab-ci kubernetes gitlab-ci-runner

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

GiLab CI-Redis :: CannotConnectError:在127.0.0.1:6379上连接到Redis时出错

很少有测试因错误而在管道中失败Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)

我的.gitlab-ci.yml档案

image: starefossen/ruby-node:latest

services:
  - mongo:latest
  - redis:latest

variables:
  MONGODB_URI: mongodb://mongo:27017/db_test
  REDISTOGO_URL: redis://localhost:6379

before_script:
  - bundle install --path=cache/bundler
  - cp config/mongoid.yml.gitlab config/mongoid.yml
  - RAILS_ENV=test bundle exec rake db:create db:migrate

test:
  script:
   - bundle exec rake test
Run Code Online (Sandbox Code Playgroud)

我的config/initializers/sidekiq.rb档案

require 'sidekiq'
require 'sidekiq-status'

Sidekiq.configure_client do |config|
  config.redis = { size: 5, url: ENV['REDISTOGO_URL'] }
end

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Sidekiq::Throttler, storage: :redis
  end
  config.redis = …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails redis gitlab-ci gitlab-ci-runner

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

如何使用gitlab ci构建,推送和拉出多个docker容器?

我有一个docker-compose文件,它构建了两个容器,一个节点应用程序和一个ngnix服务器.现在我想在gitlab runners的帮助下自动化服务器上​​的构建和运行过程.我对CI相关的东西很新,所以请原谅我的方法:

我想在gitlab.com上创建多个存储库,并为每个存储库提供一个dockerfile.我现在是否必须将gitlab-runner实例与这些项目中的每一个相关联以构建映像,将其推送到docker repo并让服务器从那里拉出来?然后我不得不以某种方式推动服务器上的docker-compose文件并从那里编写所有内容.

所以我的问题是:

  1. 我可以在一台服务器上为我的所有回购运行多个(2或3)gitlab-runner吗?
  2. 我需要特定的或共享的跑步者,究竟有什么区别?
  3. 为什么所有教程都使用自托管gitlab实例而不是仅仅使用gitlab repos(是不是可以使用gitlab-runner和gitlab.com repos?)
  4. 是否可以在gitlab-runner管道中使用docker-compose并立即构建所有内容?

对于那种非结构化的写作很抱歉,但我对这些技术有很多疑问.

提前致谢

gitlab docker gitlab-ci gitlab-ci-runner docker-compose

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

Gitlab CI-错误:作业失败:执行程序需要OSType = linux,但Docker Engine仅支持OSType = windows

运行Gitlab CI管道时出现此错误。据我了解,错误表明我正在尝试在Windows docker-engine上运行Linux类型的docker映像?但问题是我正在使用Windows docker映像。可能是什么问题呢?

错误:作业失败:执行程序需要OSType = linux,但是Docker Engine仅支持OSType = windows

我的CI:

image: hello-world:nanoserver

stages:
  - build

build1:
  stage: build
  script:
    - echo "Hello world"
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci gitlab-ci-runner

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