私はGitlabとGitlab CIに比較的慣れていません(実際にはCI全体を使用しています)、GitlabサーバーとGitlab CIサーバーの両方を同じマシンに正常にセットアップしました(スペアサーバーが不足しているため、そして私たちのチームがこのCI全体についてはまだ「ベータ」段階です)。
現在、Angular プロジェクト (Web クライアントとして) と Flask プロジェクト (Web サービスとして) の 2 つのプロジェクトが進行中です。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
Gitlab CI ジョブでtox
は、開発サーバーで実行しているのはこれだけなので (このセットアップは開発マシンで正常に動作tox
し、virtualenv 上になくても実行されます)、これを使い続けます。このコマンドを実行すると、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 /hris/xi-flask-starter-kit
Traceback (most recent call last):
File "/usr/local/bin/tox", line 11, in <module>
sys.exit(cmdline())
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 39, in main
retcode = Session(config).runcommand()
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 367, in runcommand
return self.subcommand_test()
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 518, in subcommand_test
if self.setupenv(venv):
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 423, in setupenv
status = venv.update(action=action)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 139, in update
self.install_deps(action)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 249, in install_deps
self._install(deps, action=action)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 317, in _install
action=action, extraenv=extraenv)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 283, in run_install_command
extraenv=extraenv, action=action)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 384, in _pcall
return action.popen(args, cwd=cwd, env=env, redirect=redirect, ignore_ret=ignore_ret)
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 130, in popen
stdout=stdout, stderr=STDOUT)
File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 218, in _popen
stdout=stdout, stderr=stderr, env=env)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
ちなみに、私は新しいgitlab-ci-multi-runner
ものを使用しており、角度のあるプロジェクトで使用しているランナーをほとんどリサイクルしました(同じマシンでフラスコプロジェクトに新しいランナーを登録しようとしましたが、テストしようとすると応答しません)それ)
また、私は既にtox
を使用してグローバルにインストールしています。これは、sudo pip install tox
Angular プロジェクトsudo npm install -g bower gulp
とsudo npm install npm -g
それから私はちょうど置く
npm install
bower install
gulp build
angularプロジェクトのCIジョブで