标签: gitlab-ci-runner

GitlabCi 部署在多台服务器上

我使用 Gitlab runner 并且在单个服务器上运行良好。gitlab-ci.yml 很简单:

stages:
  - test
  - deploy

test:
  stage: test
  image: php
  tags:
      - docker
  script:
      - echo "Run tests..."
deploy:
    stage: deploy
    tags:
      - shell
    script:
      - sh deploy.sh
Run Code Online (Sandbox Code Playgroud)

正如我所说,这适用于单个服务器,但要在另一台服务器上部署相同的应用程序?我尝试使用相同的 gitlab-runner 配置(相同的 conf.toml),但它只是随机更新其中一个。

是否有超过 1 个跑步者触发 gitlab Ci 并根据 gitlab-ci.yml 部署所有这些?

gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
4707
查看次数

修改 gitlab-runner 的 PATH

我想在我的 Windows 10 机器上安装一个gitlab-runner(executor shaell)。我在 gitlab 服务器上开始工作,它总是以消息结束the command "git" cannot be found(大致翻译成英文)。事实上,git这不是我的道路的一部分。如何PATHgitlab-runner启动时修改shell 的变量?

To use git on the command line in windows I usually set it with the statement: PATH %PATH%C:\Program Files\Git\bin.

Is it documented somewhere, git has to be available to the runner? How can I see the command line the runner invokes (i.e. the call to git)?

gitlab gitlab-ci-runner

6
推荐指数
2
解决办法
9077
查看次数

自动注册 GitLab runner

我有一个docker-compose.yml设置 Gitlab、Container Registry 和 Gitlab Runner 的文件。

version: '2'

services:
  redis:
    restart: always
    image: sameersbn/redis:latest
    command:
    - --loglevel warning
    volumes:
    - redis:/var/lib/redis:Z

  postgresql:
    restart: always
    image: sameersbn/postgresql:9.5-3
    volumes:
    - postgresql:/var/lib/postgresql:Z
    environment:
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    - DB_EXTENSION=pg_trgm

  gitlab:
    restart: always
    image: sameersbn/gitlab:10.1.1
    volumes:
    - gitlab-data:/home/git/data:Z
    - gitlab-logs:/var/log/gitlab
    - ./certs:/certs
    depends_on:
    - redis
    - postgresql
    ports:
    - "80:80"
    - "2222:22"
    external_links:
    - "registry:registry"
    environment:
    - DEBUG=false

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=gitlab
    - DB_PASS=password
    - …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci-runner docker-compose

6
推荐指数
1
解决办法
2653
查看次数

是否可以在没有 SSH 的情况下在 Gitlab-CI 中执行 git push?

我们想知道,如果在技术上可以像在GitHub上,做了git push使用https协议,而不是ssh没有在卷曲的请求直接使用的用户名和密码。

我见过一些人似乎认为这是可能的,但我们无法证明。

是否有任何证据或证人可以确认允许您使用用户访问令牌或gitlab-ci-tokenCI 内推送的功能?

gitlab gitlab-ci gitlab-ci-runner gitlab-8

6
推荐指数
1
解决办法
4843
查看次数

Gitlab CI:找不到 docker

我正在尝试使用 gitlab ci feature 构建我的项目。根据这个问题,我已经正确地完成了一切。这是我的 .gitlab-ci.yml。

.gitlab-ci.yml

image: docker:latest

services:
  - docker:dind

stages:
  - build
  - release
  - deploy

variables:
  DOCKER_DRIVER: overlay
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"

cache:
  paths:
    - .m2/repository/
    - auth/target/

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

build:
  image: maven:latest
  stage: build
  script:
      - mvn $MAVEN_CLI_OPTS package

auth-release:
  stage: release
  when: on_success
  script:
    - docker build -f auth/Dockerfile -t "$CI_REGISTRY/$CI_PROJECT_PATH/auth" ./auth
    - docker push "$CI_REGISTRY/$CI_PROJECT_PATH/auth"
Run Code Online (Sandbox Code Playgroud)

但控制台打印出错误:

控制台输出

Running with gitlab-runner 11.7.0-rc1 (6e20bd76)
  on docker-auto-scale …
Run Code Online (Sandbox Code Playgroud)

continuous-integration gitlab docker gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
7158
查看次数

在 .gitlab-ci.yml 中获取最新标签以进行 Docker 构建

我想在构建 Docker 映像时添加一个标签,到目前为止我正在这样做,但我不知道如何获取正在部署的存储库上的最新标签。

docker build -t company/app .
Run Code Online (Sandbox Code Playgroud)

我的目标 docker build -t company/app:$LATEST_TAG_IN_REPO? .

gitlab docker gitlab-ci gitlab-ci-runner

6
推荐指数
2
解决办法
7348
查看次数

使用 HTTPS 从 gitlab CI 作业克隆私有 Repo 而不将我的凭据公开到 CLI

我有一个 gitlab ci 工作,它为我做了一些工作,但它取决于另一个仓库,所以我需要在这个工作中克隆另一个仓库。我无法使用 https 克隆,因为 gitlab 会询问我的用户名和密码,而 gitlab ci 是非交互式的。
那么如何在 gitlab ci 作业中使用 https 克隆 gitlab repo。
提前致谢。

git gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
3
解决办法
3205
查看次数

如何在 gitlab-ci 中使用规则

我正在尝试构建一个可以有条件地执行的作业,这取决于是否WebClientdevelop分支中修改了文件或子目录,使用rules. 如果仅在开发分支中发现更改,则将构建管道。

目前我得到的.gitlab-ci.yml

deploy_dev_client:
  stage: client
  tags:
    - my tags
  script:
    - '& cd WebClient'
    - 'npm rebuild node-sass'
    - 'npm install @angular/cli@7.0.3'
    - '& npm run build-release --max_old_space_size=$NODE_MEMORY_SIZE'

  rules:
    - changes:
      - WebClient/**/*
      when: always
    - when: never
Run Code Online (Sandbox Code Playgroud)

但是,经过测试,我意识到每当我从本地存储库向 gitlab 推送某些内容时都会执行管道,即使在另一侧的分支上也是如此。

我试过使用only:-develop',但它导致yaml invalid错误,可能是因为only如果rules已经使用则无法使用。无论如何,我仍然可以使用rules仅针对develop分支吗?

pipeline gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
6810
查看次数

作业 api 中的 GitLab CI 变量?

我正在使用 rest API 在 GitLab CI 中运行手动作业。当我从 UI 开始手动作业时,我能够定义可以在作业期间使用的自定义变量。通过 API 运行作业时如何定义它们?

找不到任何关于它的文档。或者在论坛中甚至没有一个问题。

这就是我目前的工作方式

curl -k --request POST --header "PRIVATE-TOKEN: abc" https://mygit.com/api/v4/projects/17/jobs/1956/play
Run Code Online (Sandbox Code Playgroud)

我尝试添加:

--form variables[TEST]=hello
Run Code Online (Sandbox Code Playgroud)

但这没有用。

编辑:关于我在做什么的更多信息。所以我的管道有两个阶段。构建和部署。在每次提交时,我希望构建运行一次,然后我希望能够将此结果部署到多个不同的服务器。因为服务器列表是动态的,而且有很多,所以我希望将服务器的 IP 地址作为我可以提供给部署作业的变量。

gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
2632
查看次数

Gitlab:出现了运行系统故障

我使用 Gitlab 进行持续集成和开发,突然间我收到此错误消息“运行器系统出现故障,请重试”

在此处输入图片说明

没有真正的错误消息或错误代码。

我已经尝试重新启动 gitlab runner,使用gitlab-runner restart,我已经重新启动了它运行的服务器,但是每当我推送代码更改时,我都会在 Gitlab 上收到此错误消息。

gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
5530
查看次数