标签: gitlab-ci-runner

Gitlab - 未在管道中采用 CI 和 CD 的定义阶段

我有一个 .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)

gitlab gitlab-ci gitlab-ci-runner

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

gitlab runner 机器的编码/语言环境

我已经在 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 的输出是错误的

所以问题是:

  1. 如何让它正确显示?
  2. 我可能违反了一些最佳实践吗?

问候

msbuild gitlab gitlab-ci gitlab-ci-runner

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

如何升级到新安装的 gitlab runner 版本?

我尝试将我的单个 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 gitlab-ci gitlab-ci-runner

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

在没有 DOCKER 的 VPS 中使用 gitlab ci 部署 laravel

现在我有兴趣使用 gitlab ci cd 在我的自定义 VPS 上部署我的 Laravel 应用程序,我想在没有 docker 的情况下进行。但是我找到的每个教程都在使用 docker。我正在寻找 .gitlab.ci.yml 的样本,以涵盖我的情况。PS我已经为laravel配置了我的vps。

laravel gitlab gitlab-ci gitlab-ci-runner

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

GitLab CI 从其他存储库读取文件

在我的设置中,GitLab 中有两个存储库,其中一个有一个版本文件,另一个需要命名由其 CI/CD 管道生成的工件。

现在,我只是克隆整个其他存储库来访问该VERSION文件。我尝试使用git archive仅提取VERSION文件,但CI_JOB_TOKEN不适用于 SSH 访问远程(来自我的测试),并且curl对原始文件路径执行 a操作不起作用,因为它位于私有 GitLab 实例上。

有一个更好的方法吗?

gitlab gitlab-ci gitlab-ci-runner

3
推荐指数
2
解决办法
6912
查看次数

GitLab CI 拒绝使用具有写访问权限的部署密钥进行推送

我添加了一个对我的 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)

ssh continuous-integration yaml gitlab gitlab-ci-runner

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

如何为 Gitlab 配置 Python coverage.pl 报告

我是 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 中进行以下操作 …

linux coverage.py python-3.x gitlab-ci-runner

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

尽管服务帐户具有所有者角色,但 GCP 中的存储桶查询权限被拒绝

我正在尝试通过 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

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

gitlab kubernetes runner 无法连接到 docker 守护进程

我已经在 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

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

GitLab 管道 Docker 构建卡在 apk 上

尝试制作一个简单的 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 docker gitlab-ci openshift-origin gitlab-ci-runner

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