Not uploading cache {name of branch} due to policy我的 gitlab 运行程序出现错误。我的.yaml文件如下所示:
stages:
- test
- staging
- publish
- deploy
# cache using branch name
# https://gitlab.com/help/ci/caching/index.md
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .yarn
- node_modules/
policy: pull
before_script:
- yarn install --cache-folder .yarn
test:
stage: test
image: node:14
script:
- yarn install
- yarn test
pages:
stage: staging
image: alekzonder/puppeteer
except:
- master
script:
- yarn install
- yarn compile
- yarn build
publish:
stage: publish
image: …Run Code Online (Sandbox Code Playgroud) 所以我正在浏览 gitlab ci 文档以将变量传递给其他作业。但是,我该如何通过多个呢?我如何访问多个?
build:
stage: build
script:
- echo "BUILD_VERSION=hello" >> build.env
artifacts:
reports:
dotenv: build.env
deploy:
stage: deploy
script:
- echo "$BUILD_VERSION" # Output is: 'hello'
dependencies:
- build
Run Code Online (Sandbox Code Playgroud) 有什么方法可以将父管道的作业 ID 作为变量传递给子管道
package:
stage: package
script:
- zip -r ./service.zip
deploy:
stage: deploy
variables:
trigger:
include:
- project: '<namespace>/<project>'
ref: '<branch>'
file: '<path to yml file>'
strategy: depend
Run Code Online (Sandbox Code Playgroud) .deploy: &deploy
before_script:
- apt-get update -y
script:
- cd source/
- npm install multi-file-swagger
- multi-file-swagger -o yaml temp.yml > swagger.yml
Run Code Online (Sandbox Code Playgroud)
我想安装 multi-file-swagger 包将 temp.yml(已拆分为多个文件)编译为 swagger.yml。所以在使用npm之前我需要安装nodejs。我怎样才能做到这一点?
有人告诉我,不使用 JaCoCo,而是会有一个内部 Gitlab 工具,我可以在其中创建测试覆盖率报告?
我在 Gitlab 仪表板菜单中找不到任何内容。该项目是一个 Android App Kotlin 项目。
我为一个应用程序构建了很多不同的 Android 风格,所以我想将构建拆分为不同的 yml 文件。我目前有我的基本文件.gitlab-ci.yml
image: alvrme/alpine-android:android-29-jdk11
variables:
GIT_SUBMODULE_STRATEGY: recursive
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- chmod +x ./gradlew
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- .gradle/
stages:
- test
- staging
- production
- firebaseUpload
- slack
include:
- local: '/.gitlab/bur.yml'
- local: '/.gitlab/vil.yml'
- local: '/.gitlab/kom.yml'
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试打造 3 种不同的口味。但我不知道为什么只有最后包含的 yml 文件被执行。前 2 个被忽略。
/.gitlab/bur.yml
unitTests:
stage: test
script:
- ./gradlew testBurDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud)
/.gitlab/vil.yml
unitTests:
stage: test
script:
- ./gradlew testVilDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud)
/.gitlab/kom.yml
unitTests:
stage: test
script:
- ./gradlew testKomDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud) 在阶段之后我有一个管道。在最后两个阶段结束时,如下所示。
Teardown 将从 kubernetes 中删除应用程序,destroy 将从 kubenretes 集群和其他资源整体删除。
我已设置自动并允许失败为真。
但是,如果拆卸阶段失败,我想将最后一个销毁阶段设置为手动。这样我就可以交叉检查并稍后恢复工作。如果拆卸成功通过,那么它应该自动完成。
怎么设置呢?
我知道 CI/CD 变量可以在 HCL 中使用,因为在环境中使用 TF_VAR_ 前缀声明它们将使我能够将它们作为输入变量查找,然后在我所在的 .tf 文件中使用它们。需要他们。
\n我做了:
\nTF_VAR_ibm_api_key,然后屏蔽它。main.tfmain.tfvariables.tf,结果相同这是我的main.tf文件:
variable ibm_api_key {\n}\n\nterraform {\n required_version = ">= 0.13"\nrequired_providers {\n ibm = {\n source = "IBM-Cloud/ibm"\n }\n }\n}\n\nprovider "ibm" {\n ibmcloud_api_key = var.ibm_api_key\n}\nRun Code Online (Sandbox Code Playgroud)\n预期行为:变量从 CI/CD 传递并添加到 HCL 代码中。
\n当前行为:在 \xc2\xb4plan\xc2\xb4 期间,作业失败并出现错误代码 1
\n$ terraform plan\nvar.ibm_api_key\n …Run Code Online (Sandbox Code Playgroud) 我花了一天时间尝试将密钥对添加到 Gitlab CI 中的 docker 映像
当在 ssh-keygen 中加载密钥以生成 pub 密钥或在 ssh-add 中加载私钥时,我总是收到这些错误:“libcrypto 错误”或“格式无效”(取决于所使用的 docker 映像):
加载密钥“/root/.ssh/id_rsa”:libcrypto 中出现错误
代码如下:
job_deploy:
image: ubuntu:kinetic
stage: deploy
rules:
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == "master"
environment: "staging"
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client openssl libssl-dev -y )'
- eval $(ssh-agent -s)
# - echo -n "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
- …Run Code Online (Sandbox Code Playgroud) 这个配置有什么区别:
image: python:latest
Run Code Online (Sandbox Code Playgroud)
和这个:
default:
image: python:latest
Run Code Online (Sandbox Code Playgroud)
.gitlab-yml我已经使用这两个选项创建了一个文件,但实际上看不到任何重大差异。
default:image使用key in.gitlab-ci.yml而不是仅仅使用有什么好处吗image?