是否有可能在gitlab-ci.yml中有两个阶段,一个用docker runner运行但另一个用shell运行?
想象一下,我想在docker容器中运行测试,但我想在容器中本地运行shell部署阶段.
我目前使用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
我的.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)
这里不需要存储库,因为我只需要其他任务的工件。是否可以禁用此行为?
我尝试使用我的 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) 我曾经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
我正在尝试在 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) 我使用 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) 我正在创建一个简单的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) 我正在使用 Gitlab 设置 CI,它运行良好,但我需要在脚本命令中使用变量,但我不确定如何做到这一点。我在想这样的事情
script:
- npm config set "//npm.fontawesome.com/:_authToken" $FONT_AWESOME_KEY
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些其他的路线,但我似乎无法在我想要运行的命令中获取要填充的变量值。
将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-ci ×10
gitlab ×8
docker ×3
gitlab-pages ×2
alpine-linux ×1
cypress ×1
font-awesome ×1
gradle ×1
javascript ×1
jhipster ×1
junit ×1
maven ×1
unit-testing ×1
yarnpkg ×1