标签: gitlab

Gitlab CI,使用带有 npm 配置集的变量

我正在使用 Gitlab 设置 CI,它运行良好,但我需要在脚本命令中使用变量,但我不确定如何做到这一点。我在想这样的事情

script:
- npm config set "//npm.fontawesome.com/:_authToken" $FONT_AWESOME_KEY
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些其他的路线,但我似乎无法在我想要运行的命令中获取要填充的变量值。

gitlab font-awesome gitlab-ci

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

更改 gitlab runner 的克隆目录

目前我在多个工具中面临路径问题,因为 gitlab clone dir 的路径长度,使用 gitlab runner。 当前目录结构:C:\gitLab\builds\576aef34\0\root\TEST

有什么办法可以缩短这个路径,比如:C:\gitLab\builds\TEST

gitlab gitlab-ci gitlab-ci-runner

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

GitLab:如何列出具有大小的注册表容器

我有一个自托管的 GitLab CE Omnibus 安装(版本 11.5.2)正在运行,包括容器注册表。现在,托管所有这些容器所需的磁盘大小增加得非常快。作为管理员,我想列出这个注册表中的所有 Docker 镜像,包括它们的大小,所以我可以让它们被删除。

也许我看的不够仔细,但目前,我在 GitLab 的管理面板中找不到任何东西。在我创建一个脚本来比较repositoriesblobs目录之间的奇怪链接/var/opt/gitlab/gitlab-rails/shared/registry/docker/registry/v2,然后根据存储库聚合大小之前,我想问:

是否有一些 CLI 命令甚至是对注册表的 curl 调用来获取我想要的信息?

registry administration gitlab docker

1
推荐指数
2
解决办法
2874
查看次数

错误:合并到主分支后缺少绑定“binding.node”

我尝试在 GitLab 的一个分支中的 CI/CD 中配置自动代码覆盖率,并且管道在分支内完美通过,但是当管理员将更改合并到主分支时,管道由于缺少绑定而失败。

我曾经gitlab-ci.yml在其中配置我的作业。我没有任何使用管道的经验,所以这对我来说几乎是一个反复试验的任务。

最后,我得到了对我有用的配置,它不会破坏任何东西并根据需要生成覆盖范围。但是,由于它在成功构建之前显示无空间错误,因此我不得不强制清除缓存以使作业正常运行。在我的分支中,管道通过而没有任何错误,我通过多次重新运行来进行双重检查。但是一旦管理员合并了分支,它突然开始产生以下错误:

ERROR in Module build failed: Error: Missing binding /builds/internal/employee_portal/node_modules/node-sass/vendor/linux-x64-64/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x

Found bindings for the following environments:
  - Linux 64-bit with Node.js 11.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (/builds/internal/employee_portal/node_modules/node-sass/lib/binding.js:15:13)
    at Object.<anonymous> (/builds/internal/employee_portal/node_modules/node-sass/lib/index.js:14:35)
    at Module._compile …
Run Code Online (Sandbox Code Playgroud)

continuous-integration pipeline continuous-deployment gitlab docker

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

致命:无法创建工作树目录:没有这样的文件或目录

我正在尝试克隆驻留在 gitlab 中的 git 存储库。在检出文件时,我收到此错误。此外,我验证了我尝试克隆的当前本地文件夹具有写入权限。

我认为这可能是this 的重复。
由于这个问题没有答案,所以我又问了一遍。

请帮我解决这个问题。

git gitlab

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

具有多个 Terraform 配置的有效 GitLab CI/CD 工作流程?

我的团队将 AWS 用于我们的基础设施,跨越 3 个不同的 AWS 账户。我们将简单地给他们打电话sandboxstagingproduction

我最近针对我们的 AWS 基础设施设置了 Terraform,它的层次结构映射到我们的帐户,然后是应用程序或 AWS 服务本身。回购结构看起来像这样:

staging
  iam
    groups
      main.tf
    users
      main.tf
  s3
    main.tf
sandbox
  iam
    ...
production
  applications
    gitlab
      main.tf
  route53
    main.tf
  ...
Run Code Online (Sandbox Code Playgroud)

我们为每个 AWS 服务(例如,IAM 或 S3)或应用程序(例如,GitLab)使用单独的配置,因此我们最终不会在.tf每个帐户中生成庞大的文件,这需要很长时间才能为任何一项更改应用更新。理想情况下,我们希望摆脱基于服务的配置方法,转向更多基于应用程序的配置,但无论哪种方式,手头的问题都是一样的。

当从命令行手动应用更新时,这种方法一直运行良好,但我很想将它移动到 GitLab CI/CD 以更好地自动化我们的工作流程,而这正是问题所在。

在我现有的设置中,如果我对,比如说,做一个单一的改变staging/s3/main.tf,GitLab 似乎没有一个开箱即用的好方法来只运行terraform planterraform apply用于特定的配置。

如果我改为将所有内容移动到main.tf整个 AWS 帐户的单个文件中(或多个文件但与单个状态文件相关联),我可以简单地让 GitLab 触发一个作业planapply仅触发该配置。根据我们在每个账户中拥有的 AWS 资源数量,运行可能需要 15 分钟,但我认为这是一个潜在的选择。

似乎我的问题最终可能与 GitLab 如何处理“monorepos”有关,而不是与 Terraform 如何处理其工作流程有关(毕竟,如果我只是告诉它 …

continuous-integration gitlab terraform

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

gitlab-runner 命令用于重新启动运行程序的生命周期

我正在尝试配置一个跑步者并使用参考https://docs.gitlab.com/runner/commands/

但不清楚运行/启动/安装/注册的命令生命周期是什么

  • 应该在我重新启动系统时调用一次或每次调用 register。安装和启动怎么样?

  • 要重新启动跑步者,我应该怎么做stopuninstall然后install start run呢?

  • 我应该这样run做还是start会产生相同的效果?

gitlab gitlab-ci gitlab-ci-runner

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

Gitlab CI:作业配置应至少包含一项可见作业

我已经开始在 Gitlab CI 上构建我的 .gitlab-ci.yml 所以我用这样的简单阶段创建了它

image: node:alpine

variables:
  PUBLIC_URL: /my-app

cache:
  paths:
    - node_modules

stages:
  - build
  - deploy

install_dependencies:
  stage: build
  script:
    - npm install
  artifacts:
    paths:
      - node_modules/

deploy_to_cloud:
  stage: deploy
  script:
    - echo Deployed
Run Code Online (Sandbox Code Playgroud)

但作业失败并回复:在您的 .gitlab-ci.yml 中发现错误:

“作业配置应至少包含一项可见的作业”

git continuous-integration yaml gitlab gitlab-ci

1
推荐指数
2
解决办法
6584
查看次数

Gitlab-ci.yml 创建合并请求

我在 DEV 分支中运行了以下 gitlab-ci.yml 文件,目标也为 DEV。由于我无法将 TARGET 指向 MASTER,因此不会创建自动 MR。我想知道是否可以在 gitlab-ci 脚本本身中创建合并请求。

dev:
  stage: deploy
  script:
    - url_host=`git remote get-url origin | sed -e "s/https:\/\/gitlab-ci-token:.*@//g"`
    - git remote set-url origin "https://gitlab-ci-token:${CI_TAG_UPLOAD_TOKEN}@${url_host}"
    - databricks workspace export_dir -o /mynotebooks.
    - git add .
    - git commit -m 'Add notebooks to Repo' -a || true
    - git push origin HEAD:dev
  tags:
    - test
Run Code Online (Sandbox Code Playgroud)

我搜索并引用了我的网站,但看不到任何有关以编程方式创建合并请求的说明。

这个想法是各种开发人员正在开发一个 databrick 集群,并且 gitlab 计划定期运行。更改将被推送到 DEV 分支,并将使用合并请求推送到 MASTER 分支。

我想知道这个 MR 创建是否可以自动化。请新到 GITLAB。

谢谢。

git gitlab gitlab-ci gitlab-api

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

如何在 Gitlab 中启用推送规则

根据文档推送规则在以下情况下不可见:

Settings > Repository 并展开 Push Rules

如何在我的 gitlab 存储库中启用推送规则

git gitlab

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