有什么办法可以id通过 GitLab API获得项目的一个。
我使用提供项目名称的 GitLab API 创建了一个项目 -
curl -kX POST --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/projects/my_app&visibility=internal
它返回预期有类似项目信息的结果links,id,user,namespace等现在我要创建issue或创建branch。我id现在需要这个项目。那么如何检索id我的项目的my_app. (不是来自用户界面)。
我没有找到任何可以创建issue或branch不使用 project 的API 查询id。
我总是需要id 问题 API
POST /projects/:id/issues
同样,我没有找到任何可以id使用该项目检索的 API 查询name
我唯一可以通过 Search API 使用并使用的东西 project name
curl -kX GET --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/search?scope=projects&search=my_app
但它提供了大量信息。我只需要检索project id. 不知道如何获得项目id?
有 …
经过一个月的 docker trust 通过 GitLab CI 为我工作正常后,我突然收到了这条消息。
我有一个 Gitlab Runner 挂载 ~/.docker/trust (所以它被持久化)并将它推送到我们的 QA 注册表。
tag_image_test:
stage: tag_image
script:
- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
- docker pull "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}"
- export DOCKER_CONTENT_TRUST=1
- export DOCKER_CONTENT_TRUST_SERVER=$QA_REGISTRY_SIGNER
- export DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE=$QA_REGISTRY_SIGNER_ROOT_PASSPHRASE
- export DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=$QA_REGISTRY_SIGNER_REPO_PASSPHRASE
- docker login -u "$QA_REGISTRY_USERNAME" -p "$QA_REGISTRY_PASSWORD" $QA_REGISTRY_URL
- export PROJ_PATH=$(echo -en $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')
- docker tag "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" "${QA_REGISTRY_IMAGE}/${PROJ_PATH}:${CI_COMMIT_REF_SLUG}"
- docker push "${QA_REGISTRY_IMAGE}/${PROJ_PATH}:${CI_COMMIT_REF_SLUG}"
Run Code Online (Sandbox Code Playgroud)
但是推送命令以:
time="2019-03-18T11:51:14Z" level=debug msg="failed to verify TUF data for: qa.registry.local/mygroup/myimage, valid …Run Code Online (Sandbox Code Playgroud) 我有一个 GitLab ci 作业来下载和构建几个文件,然后发布到另一台服务器。我做了一个 POC 并且成功了。问题是我想在手动或通过 API 触发时自定义作业。我如何传递动态值(用户给定)以反映 CI 作业(如文件名、格式等)?
我正在使用 Windows 运行程序。
我看到了触发器变量和环境变量,但是一旦在 UI 中设置了值,就可以在执行时检索。我想要从用户那里获取值的地方有点不同。
在 GitLab 中是不可能的吗?
编辑:
关于我如何使用管道的更多信息。我的管道有两个阶段 - 构建和部署。我希望构建运行一次,但我希望能够调用多个部署来部署到不同的服务器。我可以使用该变量来确定要部署到哪个服务器。通过 GitLab UI,这是可能的 - 我可以为管道设置变量,也可以为覆盖管道变量的作业设置变量。我只想通过 API 做同样的事情。
我曾多次尝试在 GitLab CI 中将 Minio 服务器作为服务启动,然后运行我需要 S3 存储桶的测试,但我一直收到“无法链接到非运行容器”的错误消息。这是 Minio Server 的 docker-compose.yaml 在官方网站上的样子:
services:
minio1:
image: minio/minio:RELEASE.2019-03-27T22-35-21Z
volumes:
- data1:/data
ports:
- "9001:9000"
environment:
MINIO_ACCESS_KEY: ***
MINIO_SECRET_KEY: ***
command: server http://minio1/data
Run Code Online (Sandbox Code Playgroud)
这里它尝试在我的 gitlab-ci 中使用 Docker 中的 Docker 启动 Minio Server:
stages:
-test
image: my_image
u_tests:
services:
- name: minio/minio:RELEASE.2019-03-27T22-35-21Z
alias: miniotest
- name: docker:stable-dind
command:
- docker run -p 9000:9000 --name minio1 \
-e "MINIO_ACCESS_KEY=key" \
-e "MINIO_SECRET_KEY=key" \
minio/minio server /data
variables:
MINIO_ACCESS_KEY: ***
MINIO_SECRET_KEY: ***
stage: test
script: …Run Code Online (Sandbox Code Playgroud) 我正在尝试登录 CGR 并在 Gitlab-ci runner 中使用一些私有 docker 图像。
我在 Google Cloud 中创建了一个新项目并激活了 Google Cloud Registry API。我还创建了一个新的服务帐户 (IAM),我在其中授予了先前 Cloud Registry 实例的所有权权限。然后我生成了一个json密钥。我使用以下 gitlab-ci 配置并在本地机器上测试了密钥:
image: docker:latest
services:
- docker:dind
auth:
stage: auth
script:
- docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json
Run Code Online (Sandbox Code Playgroud)
它似乎经过身份验证和授权推/拉图像。
我需要做的是拥有以下内容,我需要转到我的私人存储库并在 gitlab-ci runner 中使用这些图像。像这样的东西:
before_script:
- docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json
build:
stage: build
image: gcr.io/image-repo/image
script:
- gradle clean build
deploy:
stage: deploy
image: gcr.io/image-repo/image
script:
- gradle publish
only:
- master
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到此错误:
在 docker-auto-scale …
我无法成功运行 autodevops 管道。我已经阅读了多个教程、指南、问题、修复和解决方法,但现在我需要您的支持。
我有一个家庭 kubernetes 集群(两个虚拟机)和一个使用 HTTPS 的 GitLab 服务器。我已经设置了集群并在 GitLab 组级别(安装了 helm、ingress、runner)中定义了它。我必须做一些调整才能使跑步者在 gitlab 中注册(它最初不接受证书)。
现在,当我运行 autodevops 管道时,我在日志中收到如下错误:
Run Code Online (Sandbox Code Playgroud)Running with gitlab-runner 11.9.0 (692ae235) on runner-gitlab-runner-5976795575-8495m cwr6YWh8 Using Kubernetes namespace: gitlab-managed-apps Using Kubernetes executor with image registry.gitlab.com/gitlab-org/cluster-integration/auto-build-image/master:stable ... Waiting for pod gitlab-managed-apps/runner-cwr6ywh8-project-33-concurrent-0q7bdk to be running, status is Pending Running on runner-cwr6ywh8-project-33-concurrent-0q7bdk via runner-gitlab-runner-5976795575-8495m... Initialized empty Git repository in /testing/helloworld/.git/ Fetching changes... Created fresh repository. fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.mydomain.com/testing/helloworld.git/': SSL certificate problem: unable to get issuer certificate
我尝试了许多解决方法,例如在下添加我的域的 CA 证书,/home/gitlab-runner/.gitlab-runner/certs/gitlab.mydomain.com.crt …
certificate ssl-certificate x509certificate kubernetes gitlab-ci-runner
我正在尝试调试 GitLab CI 管道中的一些问题。我有一个步骤 B,它使用了步骤 A 中的一些工件。
步骤 A 很长(并且在 CI 中工作),所以我不想在本地运行它:我只是从 GitLab 下载生成的工件。所以我有一个artifacts.zip,我提取它以获得一个output和一个logs目录。到现在为止还挺好。
我想在本地运行步骤 B,使用gitlab-runner. 请注意,我使用的是 9.5 版(https://docs.gitlab.com/runner/install/old.html)。
我正在使用这个命令:
gitlab-runner exec docker step-b
Run Code Online (Sandbox Code Playgroud)
正如我所解释的,step-b需要来自step-a. 这是我尝试过的:
gitlab-runner exec docker --docker-volumes ~/Downloads/output step-b
Run Code Online (Sandbox Code Playgroud)
在步骤 B 中执行的脚本之一正在执行类似mv ../output /some/where/else. 但是,此脚本失败并出现以下错误:
mv: cannot stat '../output': No such file or directory
Run Code Online (Sandbox Code Playgroud)
出现此错误后,我有两个问题:
这个脚本在哪里执行?它是这样调用的.gitlab-ci.yml:
./scripts/my_script.sh.
Run Code Online (Sandbox Code Playgroud)
什么是.在这种情况下?
--docker-volumes ~/Downloads/output将目录安装在正确的位置以便我的脚本可以找到它?编辑
根据要求,这里是步骤 A 的描述。
script: …Run Code Online (Sandbox Code Playgroud) 我有一个.gitlab-ci.yaml与extends指令,这对gitlab-CI工作,但我不能测试它gitlab-runner exec,它看起来像extends被忽略gitlab-runner。
我有两个文件,例如:
# .2extend.yml
.job2extend:
image: some/docker/img
stage: test
script:
- echo do things with "${myvar}"
Run Code Online (Sandbox Code Playgroud)
和
# .gitlab-ci.yml
include:
- project: 'project/to/extend'
ref: master
file: '.2extend.yml'
myjob:
extends: .job2extend
variables:
myvar: 'My Variable'
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:
$ gitlab-runner exec docker myjob
Runtime platform arch=amd64 os=linux pid=29785 revision=45d9c1d6 version=12.4.0~beta.1935.g45d9c1d6
FATAL: missing 'script' for job
Run Code Online (Sandbox Code Playgroud)
我正在扩展的工作既有指令script又有image指令。
我遇到了这个问题,它和我有同样的问题。
那么,在问题没有解决的情况下,有没有办法做到这一点?
我们已经讨论这个问题好几天了。
为 Java 应用程序创建了一个 Gitlab CI 管道,从 Maven 和 Nexus 读取依赖项
gitlab 管道被配置为以具有管理员权限的 Nexus 用户身份运行,这已经被多次验证。
但是,当执行 gitlab 管道时,我们收到以下错误:
[ERROR] Failed to execute goal on project hello-component: Could not resolve dependencies for project x.y.z:hello-component:jar:1.6-SNAPSHOT: Failed to collect dependencies at a.b:c:jar:4.5.1132100: Failed to read artifact descriptor for b:c:jar:4.5.1132100: Could not transfer artifact a.b:c:pom:4.5.1132100 from/to maven-snapshots (http://host:8081/repository/maven-snapshots): Authorization failed for http://host:8081/repository/maven-snapshots/a/b/c/4.5.1132100/nidp-4.5.1132100.pom 403 Forbidden -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project hello-component: Could not resolve dependencies for project x.y.z:hello-component:jar:1.6-SNAPSHOT: Failed to …Run Code Online (Sandbox Code Playgroud) 我有一个远程跑步者:
ci$ gitlab-runner --version 版本:12.2.0
.gitlab-ci.yml :
stages:
- build
- deploy
variables:
LANG: "en_US.UTF-8"
LC_ALL: "en_US.UTF-8"
build:
tags:
- ios
stage: build
script:
- bundle exec fastlane build
except:
- develop
- master
- /^rc\/.*$/
environment:
name: production
deploy:
tags:
- ios
stage: deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- …Run Code Online (Sandbox Code Playgroud) gitlab-ci-runner ×10
gitlab ×6
gitlab-ci ×6
docker ×4
git ×2
certificate ×1
curl ×1
java ×1
kubernetes ×1
maven ×1
minio ×1
nexus ×1
notary ×1