我有一个 .gitlab-ci.yml 文件,如下所示:
image: node:6.10.3
stages:
- ver
- init
- deploy
ver:
stage: ver
script:
- node --version
- whoami
init:
stage: init
script:
- npm cache clean
- rm -rf node-modules
- npm install
deploy_staging:
stage: deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
script:
- ssh-add <(echo "$STAGING_PRIVATE_KEY" …Run Code Online (Sandbox Code Playgroud)我已经在 winserver 2016 上设置了 GitLab runner。
一切正常,除了 gitlab 上的 runner 输出。
winserver 的语言环境是 RU。
我正在尝试使用 MSBUILD 构建项目,它输出俄语字符:
Checking out e5ec41d1 as release-2...
Skipping Git submodules setup
$ echo "?????????? ???? %PROJECT_NAME%"
"?????????? ???? PEPSolution"
$ echo "???????? ??????... "
"???????? ??????... "
$ "C:\Program Files ^(x86^)\MSBuild\14.0\Bin\amd64\MSBuild.exe" /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "%PROJECT_NAME%.sln"
C:\Program Files (x86)\MSBuild\14.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(2398,5): error MSB3091: ?????? ?? ???????, ? ??? ?? ???????
yml文件中的俄语符号显示正确。但是从 MSBUILD 的输出是错误的
所以问题是:
问候
我尝试将我的单个 gitlab runner 从 11.0 更新到 11.3.1 并按照 gitlab doc上的说明进行操作。
sudo apt-get install gitlab-runner将确认我安装了新版本:
gitlab-runner 已经是最新版本(11.3.1)。
像 10.* 到 11.0 这样的最后更新工作得很好,但这次运行程序仍然停留在 11.0(在 -help 和 gitlab-ci web ui 中)。
跑步者的重新启动不会改变任何东西,所以看起来我错过了更新的主要步骤。
找出我做错了什么会很棒,提前致谢。:-)
操作系统:Ubuntu 18.04.1
(我在 linux 和 gitlab 世界中相对较新,所以它可能是显而易见的)
使用的更新命令:
# For Debian/Ubuntu/Mint
sudo apt-get update
sudo apt-get install gitlab-runner
Run Code Online (Sandbox Code Playgroud) 现在我有兴趣使用 gitlab ci cd 在我的自定义 VPS 上部署我的 Laravel 应用程序,我想在没有 docker 的情况下进行。但是我找到的每个教程都在使用 docker。我正在寻找 .gitlab.ci.yml 的样本,以涵盖我的情况。PS我已经为laravel配置了我的vps。
在我的设置中,GitLab 中有两个存储库,其中一个有一个版本文件,另一个需要命名由其 CI/CD 管道生成的工件。
现在,我只是克隆整个其他存储库来访问该VERSION文件。我尝试使用git archive仅提取VERSION文件,但CI_JOB_TOKEN不适用于 SSH 访问远程(来自我的测试),并且curl对原始文件路径执行 a操作不起作用,因为它位于私有 GitLab 实例上。
有一个更好的方法吗?
我添加了一个对我的 GitLab 存储库具有写访问权限的部署密钥。我的.gitlab-ci.yml文件包含:
- git clone git@gitlab.domain:user/repo.git
- git checkout master
- git add myfile.pdf
- git commit -m "Generated PDF file"
- git push origin master
Run Code Online (Sandbox Code Playgroud)
克隆存储库时部署密钥有效。即使部署密钥具有写入权限,也无法进行推送。
remote: You are not allowed to upload code.
fatal: unable to access 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@domain/user/repo.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud) 我是 Gitlab 的新手,试图为 Gitlab 设置覆盖率报告 -m。当我手动运行时,coverage report -m 给我报告。只是无法弄清楚需要做什么才能在 Gitlab 上显示该显示。
这需要在 Linux for Gitlab 上使用 Python 3.6 单元测试代码覆盖率运行。
这是我的 yml 文件
stages:
- build
- test
- coverage
- deploy
before_script:
- pip install -r requirements.txt
unit-tests:
image:
name: "python:3.6"
stage: test
script: python -m unittest discover
test:
image:
name: "python:3.6"
stage: test
script:
- python my_Project_Lib/my_test_scripts/runner.py
coverage:
stage: test
script:
- python -m unittest discover
- coverage report -m
- coverage-badge
coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
Run Code Online (Sandbox Code Playgroud)
这可以很好地运行我的单元测试和 runer.pl,还可以运行覆盖率。您将需要在 requrements.txt 中进行以下操作 …
我正在尝试通过 Terraform 制作 GCP VM。我在 Google 上创建了一个具有 Project Owner 角色的服务帐户。通过 Terraform,我正在尝试制作一个存储桶来存储 Terraform 的状态。凭证的 .json 位于 Gitlab 变量中。
问题是,尽管服务帐户具有所有者角色,但我收到 403 错误,指出我的服务帐户无权访问并且被禁止。
我尝试过的事情:
我为服务帐户分配了不同的角色,包括项目编辑器、存储管理员和存储对象管理员。
我已经删除并重新制作了它(并更新了 Gitlab 变量)。
我已经通过 UI 而不是 Terraform 在 google 上创建了bucket,因为这是问题所在,但没有改变任何东西。
Gitlab 的 yml:
image:
name: hashicorp/terraform:light
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
before_script:
- rm -rf .terraform
- terraform --version
- mkdir -p ./creds
- echo $SERVICEACCOUNT | base64 -d > ./creds/serviceaccount.json
- terraform init
stages:
- validate
- plan
- apply
validate:
stage: validate
script:
- terraform …Run Code Online (Sandbox Code Playgroud) google-cloud-storage google-cloud-platform gitlab-ci-runner terraform google-iam
我已经在 kubernetes 中配置了 gitlab runner,它无法连接到 docker daemon 。显示以下错误。
$ docker build --cache-from "${DOCKER_IMAGE_TAG}" -t "${DOCKER_IMAGE_TAG}" 。
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。docker 守护进程是否正在运行?错误:作业失败:命令以退出代码 1 终止
stages:
- push_to_docker
docker_image:
image: 'docker:latest'
services:
- docker:dind
stage: push_to_docker
variables:
DOCKER_IMAGE_TAG: 'gcr.io/abcd-project/test'
script:
- docker build --cache-from "${DOCKER_IMAGE_TAG}" -t "${DOCKER_IMAGE_TAG}" .
- echo "$SERVICE_ACCOUNT_KEY" > key.json
- docker login -u _json_key --password-stdin https://gcr.io < key.json
- docker push ${DOCKER_IMAGE_TAG}
only:
- master
tags:
- abcd
Run Code Online (Sandbox Code Playgroud)
我的config.toml文件如下
listen_address = "[::]:9252"
concurrent = 4 …Run Code Online (Sandbox Code Playgroud) continuous-integration gitlab docker kubernetes gitlab-ci-runner
尝试制作一个简单的 GitLab 管道,为 Alpine Linux + Openshift CLI 构建 Docker 镜像。
这是代码:
FROM frolvlad/alpine-glibc:latest
MAINTAINER Daniel Widerin <daniel@widerin.net>
ENV OC_VERSION=v3.11.0 \
OC_TAG_SHA=0cbc58b \
BUILD_DEPS='tar gzip' \
RUN_DEPS='curl ca-certificates gettext'
RUN apk --no-cache add $BUILD_DEPS $RUN_DEPS && \
curl -sLo /tmp/oc.tar.gz https://github.com/openshift/origin/releases/download/${OC_VERSION}/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit.tar.gz && \
tar xzvf /tmp/oc.tar.gz -C /tmp/ && \
mv /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit/oc /usr/local/bin/ && \
rm -rf /tmp/oc.tar.gz /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit && \
apk del $BUILD_DEPS
CMD ["/bin/sh"]
Run Code Online (Sandbox Code Playgroud)
现在由于某种原因,在运行管道时,它会卡在curl下载 openshift 存档的部分上。
Status: Downloaded newer image for frolvlad/alpine-glibc:latest
---> 38dd85a430e8
Step …Run Code Online (Sandbox Code Playgroud) gitlab-ci-runner ×10
gitlab ×8
gitlab-ci ×6
docker ×2
coverage.py ×1
google-iam ×1
kubernetes ×1
laravel ×1
linux ×1
msbuild ×1
python-3.x ×1
ssh ×1
terraform ×1
yaml ×1