标签: gitlab-ci

Gitlab CI Build失败了gitlab-runner-prebuilt.tar.xz:没有这样的文件或目录

我刚刚在我的开发机器(Ubuntu 17.10)上安装了Gitlab Runner进行测试.当我跑步时,我得到了:

$: sudo gitlab-runner exec docker test       
   Running with gitlab-ci-multi-runner dev (1.4.2)
   Using Docker executor with image php:5.6 ...
   ERROR: Build failed (system failure): open /var/lib/gitlab-runner/gitlab-runner-prebuilt.tar.xz: no such file or directory
   FATAL: open /var/lib/gitlab-runner/gitlab-runner-prebuilt.tar.xz: no such file or directory 
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml文件:

image: php:5.6

before_script:
  - php -v

stages:
  - test

test:
  script:
  - php -v
Run Code Online (Sandbox Code Playgroud)

目前的安装过程:

sudo apt-get install gitlab-runner
Run Code Online (Sandbox Code Playgroud)

输出:

...
Configuring gitlab-ci-multi-runner (1.4.2+dfsg-1) ...
I: generating GitLab Runner Docker image. This may take a while...
E: No …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci gitlab-ci-runner

23
推荐指数
2
解决办法
6473
查看次数

使用Gitlab CI生成Android构建

我刚刚安装了Gitlab作为我的项目的存储库,我想利用他们的Gitlab CI系统.我希望在每次提交后自动生成分发并调试Apk.我用Google搜索,但我没有找到任何教程或类似案例.如果有人能以某种方式指导我,那就太好了.

谢谢!

android gitlab-ci

22
推荐指数
1
解决办法
4816
查看次数

Gitlab有条件地执行阶段

有3个阶段 - 构建,测试和部署.gitlab-ci.yml.

需要运行夜间回归测试阶段 - 好nightly:)

这是相关的.gitlab-ci.yml代码:

stages:
  - build
  - test
  - deploy

build_project:
  stage: build
  script:
    - cd ./some-dir
    - build-script.sh
  except:
  - tags

#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW?
nightly_regression_test_project:
  stage: test
  script:
    - cd ./some-dir
    - execute test-script
Run Code Online (Sandbox Code Playgroud)

每天标记到only运行test阶段是不可取的.

还有其他想法吗?

git gitlab gitlab-ci

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

Gitlab CI运行器无法公开嵌套Docker容器的端口

当使用GitLab CI以及它时gitlab-ci-multi-runner,我无法获得内部启动的Docker容器以将其端口暴露给"主机",这是运行构建的Docker映像.

我的.gitlab-ci.yml档案:

test:
  image: docker
  stage: test
  services:
    - docker:dind
  script:
    - APP_CONTAINER_ID=`docker run -d --privileged -p "9143:9143" appropriate/nc nc -l 9143`
    - netstat -a
    - docker exec $APP_CONTAINER_ID netstat -a
    - nc -v localhost 9143
Run Code Online (Sandbox Code Playgroud)

我的命令:

gitlab-ci-multi-runner exec docker --docker-privileged test
Run Code Online (Sandbox Code Playgroud)

输出:

$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 runner--project-1-concurrent-0:54664 docker:2375             TIME_WAIT
tcp        0      0 runner--project-1-concurrent-0:54666 docker:2375             TIME_WAIT
Active UNIX domain …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci docker-compose

22
推荐指数
2
解决办法
8004
查看次数

Gitlab-ci + DinD + Mysql服务权限问题

我创建了两个gitlab作业:

  • 测试单元(在gitlab上使用php注册的docker)
  • 声纳(使用docker服务运行"Letsdeal/docker-sonar-scanner")

我使用以下gitlab-ci-multi-runner配置:

concurrent = 1
check_interval = 0

[[runners]]
  name = "name-ci"
  url = "https://uri/ci"
  token = "token"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = true
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
Run Code Online (Sandbox Code Playgroud)

测试单元作业正常工作但Sonar作业对以下消息失败:

service runner-f66e3b66-project-227-concurrent-0-docker-wait-for-service did timeout

2017-07-05T16:13:18.543802416Z mount: mounting none on /sys/kernel/security failed: Permission denied
2017-07-05T16:13:18.543846406Z Could not mount /sys/kernel/security.
2017-07-05T16:13:18.543855189Z AppArmor detection and --privileged mode might break.
2017-07-05T16:13:18.543861712Z mount: mounting none on /tmp failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我将'runner.docker'的配置参数'privileged'更改为false时.声纳工作但测试单元失败: …

mysql docker gitlab-ci gitlab-ci-runner

22
推荐指数
1
解决办法
1381
查看次数

GitLab Runner - 如何一次只允许一个管道运行

我是 GitLab 新手,面临一个问题:如果我在同一个 gitlab-runner 上同时触发两个管道,它们都会并行运行并导致失败。我想要的是将运行限制为一次只运行一个管道,而其他管道则在队列中运行。

我已经在 config.toml 中设置concurrent = 1并重新启动了运行器,但没有帮助。我的最终目标是防止runner上多管道运行。

谢谢。

gitlab gitlab-ci gitlab-ci-runner

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

如何在 Gitlab 中禁用“分离”管道?

我们有一个普通的存储库,其中包含一些代码和测试。

一项工作有“规则”声明:

  rules:
    - changes:
      - foo/**/*
      - foo_scenarios/**/*
      - .gitlab-ci.yml
Run Code Online (Sandbox Code Playgroud)

问题是, 的存在会rules导致 Gitlab 运行“独立管道”,这不是我的本意,而且很烦人。有什么方法可以禁用那些“分离”的管道,但保留该rules部分?

gitlab gitlab-ci

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

Gitlab config.toml 在哪里

我正在致力于向 gitlab 添加代码质量。其中一个步骤需要更改 config.toml。

我在项目存储库的根级别有 .gitlab-ci.yml。并且管道拾取此文件。

我在哪里定义 config.toml ?在根级别,或者我需要创建一个新文件夹,例如 /etc/gitlab-runner/config.toml

gitlab gitlab-ci gitlab-ci-runner gitlab-runner

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

如何定义 GitLab CI 作业以依赖于一个或另一个先前作业?

我想定义一个管道来编译、部署到目标和测试我的项目。

这应该以两种不同的方式发生:每次提交时增量(希望快速)构建和安排在晚上的完整构建。

以下.gitlab-ci.yml所有作业均标记为“手动”以进行测试。

stages:
    - build
    - deploy
    - test

variables:
    BUILD_ARTIFACTS_DIR: "artifacts"

build-incremental:
    timeout: 5h 
    stage: build
    script:
        - echo "Building"
        - ./ci/do-prep
        - echo "done."
    artifacts:
        paths:
            - $BUILD_ARTIFACTS_DIR/
    variables:
        BUILD_TOP_DIR: "/workspace/builds"
    tags:
        - yocto
    when: manual

build-nightly:
    timeout: 5h
    stage: build
    script:
        - echo "Building"
        - ./ci/do-prep
        - echo "done."
    artifacts:
        paths:
            - $BUILD_ARTIFACTS_DIR/
    tags:
        - yocto
    when: manual

deploy:
    stage: deploy
    script:
        - echo "Deploying..."
        - ./ci/do-deploy
        - echo "done."
    tags:
        - yocto
    dependencies: …
Run Code Online (Sandbox Code Playgroud)

gitlab-ci

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

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

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

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

gitlab gitlab-ci

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