标签: gitlab-ci

在 Google Kubernetes Engine 上托管 sails.js 应用程序时,我收到所有资产的 404 错误

我想在 Google Kubernetes Engine 上运行 sails.js 应用程序。在本地运行应用程序 docker 容器效果很好。到 GKE 的部署是通过 gitlab Auto-Devops 管道完成的。到目前为止,将应用程序部署到 GKE 正在运行,我可以使用 gitlab-CI 生成的域访问 sails.js 应用程序的页面 - 例如xyz-review-autodevops-123.my.host.com

但是,当访问页面时,只能加载所请求的页面 - 所有资源(例如图像、javascript 和 css 文件)都不会加载,而是返回 404。

当查看 GKE 中的 nginx-ingress-controller 日志时,我发现请求了这些 url,但结果是 404:

[05/Aug/2018:12:27:25 +0000] "GET /js/cloud.setup.js HTTP/1.1" 404 9 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" 573 0.004 [my-app-review-autodevops-1232u0-my-app-443] xx.xx.xx.xx:80 9 0.004 404
Run Code Online (Sandbox Code Playgroud)

还经常记录如下错误。我不确定这是否与此问题有关,但仍然想提一下,以防万一:

error obtaining PEM from secret my-app-1239989/review-autodevops-1232u0-my-app-tls: error retrieving secret my-app-1239989/review-autodevops-1232u0-my-app-tls: secret my-app-1239989/review-autodevops-1232u0-my-app-tls was not found" …
Run Code Online (Sandbox Code Playgroud)

sails.js gitlab-ci kubernetes google-kubernetes-engine kubernetes-ingress

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

更改 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
查看次数

如何使用 docker-compose 从多个私有注册表中提取?

我试图从两个不同的项目注册表(gitlab 容器注册表)中提取两个图像。所有这些都在一个docker-compose.yml文件中。

我如何配置我的gitlab-ci.yml或配置变量(无论什么都有效)以便正确提取我的图像而不会出现任何访问​​问题?

我找到了一个使用部署令牌的解决方案docker login,可以对我的项目注册表进行只读访问。问题是,如果我只有一个图像可以拉取:如何使用 gitlab ci 构建、推送和拉取多个 docker 容器?

docker gitlab-ci docker-compose

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

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 脚本中的 PyLint 输出生成徽章。最终,如果 PyLint 具有非零退出代码,作业应该会失败。但在此之前,我希望创建徽章。所以我尝试了以下方法:

before_script:
    - [...]
    - mkdir -p public
script:
    - pylint lib --disable R,missing-docstring,wrong-import-order --reports=y | tee public/pylint-report.txt
    - export SUCCESS=${PIPESTATUS[0]}
    - SCORE=$(tail -n 2 public/pylint-report.txt | grep -o -P "\d\d?\.\d+\/\d*" | head -1)
    - echo "PyLint score ${SCORE}"
    - python3.6 -m pybadges --left-text=PyLint --right-text=${SCORE} > public/pylint.svg
    - exit ${SUCCESS}
artifacts:
    when: always
    [...]
Run Code Online (Sandbox Code Playgroud)

如果 PyLint 退出代码为 0,这可以正常工作:

$ mkdir -p public
$ pylint lib --disable R,missing-docstring,wrong-import-order --reports=y | tee public/pylint-report.txt; export SUCCESS=${PIPESTATUS[0]} …
Run Code Online (Sandbox Code Playgroud)

python bash pylint gitlab-ci

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

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-ci.yml 作业以仅在合并请求中运行

仅在合并请求中运行时如何在 .gitlab-ci.yml 中正确写入作业?

test_c:
  stage: test
  script:
    - echo "This job tests something. It will only run when all jobs in the"
    - echo "build stage are complete."
  only:
    - merge_requests
Run Code Online (Sandbox Code Playgroud)

此作业不在合并请求中运行,但不在 master 或 develop 中运行和提交。

continuous-integration gitlab gitlab-ci

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

Gitlab CI:如何从预构建的映像中缓存 node_modules?

情况是这样的:我在 Gitlab CI(由 vue-cli 启动)中运行 Cypress 测试。为了加快执行速度,我构建了一个包含必要依赖项的 Docker 映像。如何从预构建的映像中缓存 node_modules 以在测试作业中使用它?目前我正在使用一个糟糕的(但有效的)解决方案:

testsE2e:
  image: path/to/prebuiltImg
  stage: tests
  script:
    - ln -s /node_modules/ /builds/path/to/prebuiltImg/node_modules
    - yarn test:e2e
    - yarn test:e2e:report
Run Code Online (Sandbox Code Playgroud)

但我认为使用 Gitlab CI 缓存必须有更简洁的方法。

我一直在测试:

cacheE2eDeps:
  image: path/to/prebuiltImg
  stage: dependencies
  cache:
    key: e2eDeps
    paths:
      - node_modules/
  script:
    - find / -name node_modules # check that node_modules files are there
    - echo "Caching e2e test dependencies"

testsE2e:
  image: path/to/prebuiltImg
  stage: tests
  cache:
    key: e2eDeps
  script:
    - yarn test:e2e
    - yarn test:e2e:report
Run Code Online (Sandbox Code Playgroud)

但作业 cacheE2eDeps …

node-modules gitlab-ci cypress

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

gitlab 规则,如果提交消息不包含 WIP

我只需要在提交消息不包含WIP并且分支是功能分支时运行管道..但是无论我做什么,它要么不运行,要么像下面一样总是运行

我在兜兜转转;这是我最后的努力,这对我来说似乎很有意义,但无论提交消息说什么都会触发:/

stages:
  - stage
  - sprint
# -------------------------------------------------------------------

sprint:
  stage: sprint
  allow_failure: false
  image: node:lts
  script:
    - echo 'stuff'
  rules:
    - if: '$CI_COMMIT_BRANCH=~ /^feature(.?)*/ && $CI_COMMIT_MESSAGE  != /^WIP(.?)*/'
      when: always
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci

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