标签: gitlab-ci

Gitlab CI每个阶段的执行者不同

是否有可能在gitlab-ci.yml中有两个阶段,一个用docker runner运行但另一个用shell运行?

想象一下,我想在docker容器中运行测试,但我想在容器中本地运行shell部署阶段.

gitlab-ci gitlab-ci-runner

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

Cypress 使用 Gitlab 变量

我目前使用Cypress作为我的测试工具,并且在 gitlab ci 上运行它时遇到了一个小问题。

问题

我的 Cypress 测试的一部分目前使用敏感的信用卡信息,所以当我将它上传到 gitlab 存储库时,我不得不尝试找出一种方法来防止任何人查看所说的“敏感信息”。最终,我尝试利用 Gitlabs 方便的“秘密变量”功能。

在设置了所有需要隐藏的变量后,我进入了 gitlab-ci.yml 文件并进行了设置,以便 .gitlab-ci.yml 文件创建一个名为“cypress/support/PaymentCredentials.yml”的新文件。 js”,并且在该文件中,所有敏感的付款信息都将存储为 javascript 变量(如下所示)

image: bahmutov/cypress-image
# caching node_modules folder
# https://about.gitlab.com/2016/03/01/gitlab-runner-with-docker/
cache:
  paths:
  - node_modules/
before_script:
  - cypress verify
  - "echo -e \"export default {CARDHOLDER_NAME: '$CARDHOLDER_NAME', CARD_CC: '$CARD_CC', CARD_CC_MONTH: '$CARD_CC_MONTH', CARD_CC_YEAR: '$CARD_CC_YEAR', CARD_CC_CCV: '$CARD_CC_CCV'}\" > cypress/support/PaymentCredentials.js"
stages:
  - build
  - test
build-specs:
  stage: build
  script:
    - npm install
  artifacts:
    paths:
      - cypress/integration
.job_template: &e2e_test_definition
  script:
    - echo $CARDHOLDER_NAME
    - export $CARDHOLDER_NAME …
Run Code Online (Sandbox Code Playgroud)

continuous-integration unit-testing gitlab gitlab-ci cypress

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

如何禁用gitlab Runner获取git仓库?

我的.gitlab-ci.yml中有这样的任务

deploy_all:
  stage: deploy
  script:
    - cp project/target/jnlp/* html/jnlp/
  tags:
    - client:deploy-all
Run Code Online (Sandbox Code Playgroud)

一切正常,除非不必要的git仓库获取。以下是跑步者日志中的摘录

Running with gitlab-ci-multi-runner 9.1.0 (0118d89)
...
Fetching changes...
HEAD is now at 8dfc104 Update .gitlab-ci.yml
...
Job succeeded
Run Code Online (Sandbox Code Playgroud)

这里不需要存储库,因为我只需要其他任务的工件。是否可以禁用此行为?

gitlab gitlab-ci gitlab-ci-runner

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

我尝试使用我的 React 应用程序设置 gitlab 页面,但它显示 404 错误

我尝试使用我的 React 应用程序设置 gitlab 页面,但是,我无法这样做,因为它没有生成任何可供我访问的 url。我已经设置了 gitlab-ci.yml。

> image: node:latest
pages:
  script:
    - npm install
    - npm run build
    - mkdir public2
    - mv public/* public2
  artifacts:
    paths:
      - public2
  only:
    - master
  stage: deploy
Run Code Online (Sandbox Code Playgroud)

javascript gitlab gitlab-ci gitlab-pages

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

gitlab CI/CD 中的代码覆盖率

我曾经Docker-dind构建和测试我的 python 代码。我混淆了如何在gitlab-ci以下两个选项之间运行覆盖。

1) Gitlab 本身有覆盖范围[这里]

2)我遵循python的覆盖教程并使用以下内容创建自己的覆盖范围:

 coverage:
  stage: test
  script:
      - docker pull $CONTAINER_TEST_IMAGE
      - docker run $CONTAINER_TEST_IMAGE python -m coverage run tests/tests.py
      - docker run $CONTAINER_TEST_IMAGE python -m coverage report -m
Run Code Online (Sandbox Code Playgroud)

当 gitlab 抛出异常时No data to report.

在此处输入图片说明

我猜coverage report命令无法访问/查找.coverage容器中的文件。


所以我的问题是coverage在这种情况下运行的优雅方式是什么?

continuous-integration code-coverage gitlab docker gitlab-ci

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

Docker + GitLab CI - 成功测试后将图像标记为“最新”

我正在尝试在 GitLab-CI 中的我的私有注册表上标记自动构建的 Docker 映像,但“发布”作业失败并显示: Error response from daemon: No such image: dev.skibapro.de:5050/dransfeld/dockerci-test:v0.4

这是我的.gitlab-ci.yml,构建和测试作业运行没有错误,并且在管道运行后我的注册表中出现了 docerci-test:v0.4。

image: docker:stable
variables:
  DOCKER_DRIVER: overlay2
  IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME

services:
  - docker:dind

stages:
  - build
  - test
  - release

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

build:
  only:
    - tags
  stage: build
  script:
  - docker build -t $IMAGE_TAG -f docker/Dockerfile .
  - docker push $IMAGE_TAG

test:
  only:
    - tags
  stage: test
  script:
  - docker run $IMAGE_TAG /usr/local/bin/test.sh

release:
  only:
    - tags
  stage: release …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci

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

前端maven插件无法在docker build中安装yarn

我使用 jHipster 5 处理一个项目,运行 GitLab CI 管道并希望构建 API 网关。然而,它基本上无法通过 frontend-maven-plugin:1.6:yarn 安装纱线。

作为基本映像,我使用 maven:3.5.4-jdk-8-alpine。(之前尝试过不同的,如 openjdk-8、alpine:latest 等)

构建初始化为:

mvn verify -Pprod dockerfile:build
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

[INFO] Installing node version v8.9.4
[INFO] Downloading https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.gz to /root/.m2/repository/com/github/eirslett/node/8.9.4/node-8.9.4-linux-x64.tar.gz
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] Unpacking /root/.m2/repository/com/github/eirslett/node/8.9.4/node-8.9.4-linux-x64.tar.gz into /builds/myapp/node/tmp
[INFO] Copying node binary from /builds/myapp/api-gateway/node/tmp/node-v8.9.4-linux-x64/bin/node to /builds/myapp/api-gateway/node/node
[INFO] Installed node locally.
[INFO] Installing Yarn version v1.3.2
[INFO] Downloading https://github.com/yarnpkg/yarn/releases/download/v1.3.2/yarn-v1.3.2.tar.gz to /root/.m2/repository/com/github/eirslett/yarn/1.3.2/yarn-1.3.2.tar.gz
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly …
Run Code Online (Sandbox Code Playgroud)

maven jhipster gitlab-ci alpine-linux yarnpkg

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

Gitlab CI-将失败的测试结果发布到页面

我正在创建一个简单的Java项目,使用Gradle该项目可以生成测试报告(即BDD Cucumber,JUnit等)。该项目将部署到Gitlab该项目作为Gitlab CI流程一部分的位置。

我的JUnit报告是在build/reports/tests/test/相对于项目路径的文件夹中生成的(一个index.html和一些CSS文件等)。

即使测试用例失败,我如何配置我也.gitlab-ci.yml可以将内容发布build/reports/tests/test/到Gitlab页面?

这就是我的内容.gitlab-ci.yml:(我的仓库可以在这里找到)

版本1:不向页面发布任何内容

image: java:8-jdk

stages:
  - test

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

test:
  stage: test
  script:
    - mkdir public
    - ./gradlew test

  artifacts:
    paths:
      - build/reports/tests/test/
  only:
  - master

after_script:
  - mv build/reports/tests/test/* public
Run Code Online (Sandbox Code Playgroud)

版本2:失败后就不执行该deploy阶段test

image: java:8-jdk

stages:
  - test
  - deploy

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

test:
  stage: test …
Run Code Online (Sandbox Code Playgroud)

junit gradle gitlab gitlab-ci gitlab-pages

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

Gitlab CI,使用带有 npm 配置集的变量

我正在使用 Gitlab 设置 CI,它运行良好,但我需要在脚本命令中使用变量,但我不确定如何做到这一点。我在想这样的事情

script:
- npm config set "//npm.fontawesome.com/:_authToken" $FONT_AWESOME_KEY
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些其他的路线,但我似乎无法在我想要运行的命令中获取要填充的变量值。

gitlab font-awesome gitlab-ci

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

Gitlab运行程序:无法登录到GitLab容器注册表

gitlab-runner设置为具有executor的Docker容器后docker,我无法运行任何构建。显示的日志如下所示:

Running with gitlab-runner 11.4.2 (cf91d5e1)
  on <hostname> 9f1c1a0d
Using Docker executor with image docker:stable-git ...
Starting service docker:stable-dind ...
Pulling docker image docker:stable-dind ...
Using docker image sha256:acfec978837639b4230111b35a775a67ccbc2b08b442c1ae2cca4e95c3e6d08a for docker:stable-dind ...
Waiting for services to be up and running...
Pulling docker image docker:stable-git ...
Using docker image sha256:a8a2d0da40bc37344c35ab723d4081a5ef6122d466bf0a0409f742ffc09c43b9 for docker:stable-git ...
Running on runner-9f1c1a0d-project-1-concurrent-0 via a7b6a57c58f8...
Fetching changes...
HEAD is now at 5430a3d <Commit message>
Checking out 5430a3d8 as master...
Skipping Git submodules setup
$ …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci gitlab-ci-runner

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