Gitlab CI :- 在 gitlab 上推送后获取待处理状态

Posted

技术标签:

【中文标题】Gitlab CI :- 在 gitlab 上推送后获取待处理状态【英文标题】:Gitlab CI :- Getting pending status after push on the gitlab 【发布时间】:2021-02-11 16:34:55 【问题描述】:

我正在使用Gitlab-ci 在推送上创建构建,我还在我的根目录中创建了 .gitlab-ci.yml。每次推送 Gitlab 上的代码时,我都会收到以下消息,如下所示

此作业被卡住,因为您没有任何可以运行此作业的活跃跑步者。

我已经在设置中启用了 Shared Runners

请检查我的 gitlab-ci.yml 文件数据

image: jangrewe/gitlab-ci-android

stages:
  - build

before_script:
  - export GRADLE_USER_HOME=$(pwd)/.gradle
  - chmod +x ./gradlew

cache:
  key: $CI_PROJECT_ID
  paths:
    - .gradle/

build:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
      - app/build/outputs/

我的所有推送暂停创建构建,请检查一次。

即使我手动创建了跑步者,但他们无法执行并获得以下异常

错误:作业失败(系统故障):获取 Kubernetes 配置:无效配置:未提供配置

请帮我解决这个问题。谢谢

【问题讨论】:

【参考方案1】:

如果你有活跃的shared-runner,那么尝试在 .gitlab-ci.yml 中给出跑步者的标签。假设 shared-runner 的标签是 dev-ci,然后在下面找到更新的代码:

image: jangrewe/gitlab-ci-android

stages:
  - build

before_script:
  - export GRADLE_USER_HOME=$(pwd)/.gradle
  - chmod +x ./gradlew

cache:
  key: $CI_PROJECT_ID
  paths:
    - .gradle/

build:
  stage: build
  tags:
  - dev-ci
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
      - app/build/outputs/

跑步者标签截图:

设置跑步者

在为您的项目设置运行器之前,您需要首先:

    Install gitlab-runner 在与 GitLab 安装位置不同的服务器上。 Register a runner [跑步者有 3 种类型:共享跑步者、团体跑步者和特定跑步者。根据需要,您可以选择注册哪个跑步者。] 注册跑步者时,您需要提供标签和您需要的runner executor类型。 注册跑者后,进入项目>>设置>>CI/CD>>跑者,可以看到跑者在线。如果您使用的是 Group 或 Shared runner,则需要在 Project settings 中启用 runner。

在您的情况下,您可以将 Specific RunnerDocker as Runner-Executor 一起使用,然后在 .gitlab-ci.yml 中使用您在注册 runner 时提供的标签。

【讨论】:

嗨@Sourav ..我已经在我的项目中尝试过你的 yml 文件。但不幸的是遇到了同样的问题,比如 这项工作被卡住了,因为你没有任何在线的活跃跑步者分配给他们的这些标签:dev-ci 请检查一次并告诉我..谢谢....我已经创建了标签 dev_ci...但是遇到这个异常,请ibb.co/5RwjTV1check一次跨度> 你从哪里创建了 runner 像上面 2PxrajYi... 请指导我谢谢 @RavindraKushwaha 我已经通过设置 gitlab-runner 修改了我的答案。 感谢@Sourav,您的建议已经奏效,我所做的是创建自定义运行器 docker 并从我的终端启动它,然后在我根据需要获得构建之后..是它适合吗?您能否指导我创建带有调味剂的版本(一次创建 2-3 个 apk)。请指导我。谢谢☺️ 所以你的意思是说你使用 docker 作为执行者?如果也是这样,是的,根据要求构建自定义 docker 映像并运行 CI,那是完全正确的。但抱歉,我不明白使用调味创建构建(一次创建 2-3 个 apk)您能否更具体一点。

以上是关于Gitlab CI :- 在 gitlab 上推送后获取待处理状态的主要内容,如果未能解决你的问题,请参考以下文章

自托管gitlab CI / CD推送注册表到ECS服务

如何使用 CI/CD 为 Gitlab 注册表推送基于 docker compose 的图像

gitlab - 作曲家包的 ci

排除 merge_request,在 gitlab CI 管道中推送创建作业

多个分支中的.gitlab-ci.yml的多个版本

如何让 Gitlab CI 管道始终运行一些作业,而其他作业仅在合并请求上运行?