Job脚本在哪里运行?它可以与Runner在同一系统上运行吗?运行程序如何运行脚本,以及在哪里保存构建?如果有人可以解释Gitlab CI的整个流程,那就太好了。
我对Gitlab和Gitlab CI比较陌生(实际上是整个CI的事情),我已经在同一台机器上成功设置了我的Gitlab服务器和Gitlab CI服务器(很好,因为缺少备用服务器,而且几乎是因为我们的团队是在整个CI事情上还处于"beta"阶段).
我们现在有两个项目,一个角度项目(作为Web客户端)和一个烧瓶项目(作为Web服务).我已经在Gitlab和Gitlab CI中成功设置了我们的角度项目(效果很好,它运行我们的测试并完全构建脚本).
但是现在我也想设置我们的烧瓶项目,所以我们也可以应用持续集成,并且用于tox运行我们的测试脚本等(gulp用于我们的角度项目).
这是我们非常基本的tox.ini:
[tox]
skipsdist = True
envlist = py27
[flake8]
max-line-length = 79
exclude = venv, .tox
max-complexity = 10
[testenv]
deps=-rrequirements/testing.txt
changedir=tests
commands=py.test
Run Code Online (Sandbox Code Playgroud)
在我们的Gitlab CI Jobs中,我只是放在tox那里,因为我在我的开发服务器上执行的所有操作(这个设置在我的开发机器上工作正常,tox即使我不在运行中也只是运行),但我继续这样做运行此命令时,我的Gitlab CI上的权限被拒绝错误(见下文)
gitlab-ci-multi-runner 0.3.3 (dbaf96f)
Using Shell executor...
Running on hikari...
Fetching changes...
Removing .tox/
Checkouting 8325a2a2 as master...
tox
py27 create: /home/gitlab_ci_multi_runner/tmp/builds/runner-b0fcd933- project-5-concurrent-0/gitlab.amici.com.ph/hris/xi-flask-starter-kit/.tox/py27
py27 installdeps: -rrequirements/testing.txt
ERROR: invocation failed (errno 13), args: [local('/home /gitlab_ci_multi_runner/tmp/builds/runner-b0fcd933-project-5-concurrent- 0/gitlab.amici.com.ph/hris/xi-flask-starter-kit/.tox/py27/bin/pip'), 'install', '-rrequirements/testing.txt'], cwd: /home/gitlab_ci_multi_runner /tmp/builds/runner-b0fcd933-project-5-concurrent-0/gitlab.amici.com.ph …Run Code Online (Sandbox Code Playgroud) 我gitlab-ci-multi-runner在码头上运行了一个容器.
当我gitlab-ci-multi-runner register在容器中执行时,它会询问
请输入执行者:docker ...?
如果我选择docker,是否意味着docker容器将在当前容器上运行?
抱歉我的英语不好:)
我的公司有一个主代码库和几个相同代码库的实例,即在AWS和mysql数据库上运行的company.com/instance1,company.com/instance2,company.com/instance3等.
我认为如果我们在AWS上安装gitlab会有所帮助,因为它可以简化我们的整体开发过程.这是一个好主意吗 ?.
我很困惑,我们是否必须在AWS上安装centOS来安装gitlab,或者gitlab是否可以在没有centos的AWS上运行.
我很困惑,因为在我当地的centos系统我已经在本地安装了gitlab,我在设置URL方面遇到了麻烦.
用户需要键入company.com/instance以获取所需内容,并且已经有人开始在AWS上使用它.
可能我已经做了CI并在AWS上部署代码?这是如何运作的?
gitlab在LAMP环境中是否可以在已有的AWS服务器实例上正常运行?如何去做同样的事情?
我有一个步骤.gitlab-ci.yml来运行一个生成一些工件的脚本.在正常情况下,该目录包含工件,并且它们由gitlab-ci接收.但是,我正在尝试设置,以便在没有工件的情况下任务失败.我现在得到的只是日志中的警告告诉我没有文物.我想将此警告视为错误并使任务失败.有没有办法做到这一点?
我想如果工件不存在,我可以更新我的bash脚本以退出非零,但是如果可能的话我想在gitlab任务定义中这样做.
rpm_build:
stage: build
script: ./scripts/build_rpms.sh
artifacts:
paths:
- my/RPMS/
expire_in: 3 days
Run Code Online (Sandbox Code Playgroud)
我查看了工件部分的文档,但找不到任何内容.
我在我的一个项目中使用Gitlab CI,我面临以下问题:
master构建因很多时间而失败了......我认为它与构建缓存有关,因为代码库完全相同......最新的有效构建缓存可能使当前代码库失败...
有没有办法清理特定分支上的构建缓存?在我的情况下master?来自API?
Gitlab CI每次为每个任务(阶段)提取docker镜像.这个操作浪费了很多时间.我希望尽可能优化.
我看到两个可以使用的地方:
1.显式配置CI阶段以重用相同的docker机器.
2.在构建下一次提交时使用之前提交的docker机器?(如果配置文件中没有更改).
我正在使用Gitlab 8.15.4和该版本的最新跑步者.由于我们的防火墙,我无法运行npm install,因此我将节点模块从另一个位置复制到build文件夹中.跑步者在Windows 7机器上.
我的第一次尝试:(.gitlab-ci.yml)
before_script:
- robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s
build:
stage: build
script:
- echo starting
- gulp
- echo done
artifacts:
paths:
- deploy.zip
Run Code Online (Sandbox Code Playgroud)
使用错误导致构建失败:
错误:作业失败:退出状态1
我的第二次(第n次)尝试将robocopy放入脚本文件并从那里执行:
(.gitlab-ci.yml)
before_script:
- S:\Storage\GitLab-Runner\Scripts\CopyAssets.bat
build:
stage: build
script:
- echo starting
- gulp
- echo done
artifacts:
paths:
- deploy.zip
Run Code Online (Sandbox Code Playgroud)
(CopyAssets.bat)
robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s
set/A errlev="%ERRORLEVEL% & 24"
exit/B %errlev%
Run Code Online (Sandbox Code Playgroud)
通过但不执行任何其他步骤.
如何在完成后阻止RoboCopy退出构建?
我将个人计算机用作使用Fastlane的iOS项目的运行程序。这主要是由于未安装iOS共享运行程序,因为它们未安装Xcode。
更改目录时,我的作业立即失败。
这是一个外壳运行程序,根本没有其他自定义配置。
有什么建议么?
这是运行gitlab-runner --debug run和开始作业时的输出。
Checking for jobs... received job=59131527 repo_url=https://gitlab.com/nickfarrant/aqualog-asset-collection.git runner=159b2b59
Failed to requeue the runner: builds=1 runner=159b2b59
Running with gitlab-ci-multi-runner 9.0.2 (fa8b86d)
on Nicks-Bink-iMac (159b2b59) job=59131527 project=5134442 runner=159b2b59
Shell configuration: environment: []
dockercommand:
- sh
- -c
- "if [ -x /usr/local/bin/bash ]; then\n\texec /usr/local/bin/bash --login\nelif [
-x /usr/bin/bash ]; then\n\texec /usr/bin/bash --login\nelif [ -x /bin/bash ]; then\n\texec
/bin/bash --login\nelif [ -x /usr/local/bin/sh ]; then\n\texec /usr/local/bin/sh
--login\nelif [ -x /usr/bin/sh ]; then\n\texec /usr/bin/sh --login\nelif …
我正在尝试为GitLab中的合并请求管道激活代码环境报告。CodeClimate分析器正在运行,但是当我添加一些错误代码时没有显示任何警告。可能有些配置我错过了。
我已将以下内容添加到项目rot文件夹中的.gitlab-ci.yml文件中:
include:
- template: Code-Quality.gitlab-ci.yml
Run Code Online (Sandbox Code Playgroud)
并且我添加了.codeclimate.yml文件,如下所示:
plugins:
cppcheck:
enabled: true
config:
check: all
language: c++
stds:
- c++14
- c++17
Run Code Online (Sandbox Code Playgroud)
构建作业在日志末尾以以下几行完成:
f47a75dcba39: Pull complete
Digest: sha256:c8afb8c2037f7b9c5c9ae198aff00b1cf80db11d3591fbe89dfb3c69192663f1
Status: Downloaded newer image for codeclimate/codeclimate:0.72.0
WARNING: A new version (v0.85.3) is available. Upgrade instructions are available at: https://github.com/codeclimate/codeclimate#packages
Uploading artifacts...
gl-code-quality-report.json: found 1 matching files
Uploading artifacts to coordinator... ok id=227197201 responseStatus=201 Created token=4xyzSXzN
Job succeeded
Run Code Online (Sandbox Code Playgroud)
由于合并请求未显示任何CodeClimate报告,因此这里可能出什么问题?
在GitLab中,我创建了一个合并请求,并进行了配置更改(合并到主服务器)。一个带有一些错误代码的合并请求,基于第一个具有配置的合并请求(合并到主服务器)。
错误的代码:
int non_used_int;
int non_initialized_int;
int dummy = non_initialized_int;
// empty for loop
for …Run Code Online (Sandbox Code Playgroud) gitlab-ci-runner ×10
gitlab-ci ×9
gitlab ×6
docker ×2
c++ ×1
git ×1
ios ×1
optimization ×1
tox ×1