У меня есть:
CentOS 6 финальная ОС;
GitLab 11.10.4;
Gitlab-runner 11.10.1 с Android-исполнителем
Моя часть config.toml
:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "android-1"
Как вы видите concurrent = 1
Давайте посмотрим намой .gitlab-ci.yml
:
image: runmymind/docker-android-sdk:latest
variables:
GRADLE_USER_HOME: $CI_PROJECT_DIR/.gradle
cache:
key: $CI_PROJECT_NAME
paths:
- .gradle/wrapper/
- .gradle/caches/
before_script:
- echo $JAVA_HOME
- echo $ANDROID_HOME
- echo $PATH
- chmod +x ./gradlew
stages:
- check
checkStage:
stage: check
script:
- set +e
- du -sh $CI_PROJECT_DIR/.gradle/wrapper
- du -sh $CI_PROJECT_DIR/.gradle/caches
- set -e
- ./gradlew check
artifacts:
when: on_failure
paths:
- build_results
Работает.Но когда я нажимаю в нескольких ветвях, у меня есть: На одной работе:
Running with gitlab-runner 11.10.1 (1f513601)
on android-1 cf4dbddf
Using Docker executor with image runmymind/docker-android-sdk:latest ...
Using locally found image version due to if-not-present pull policy
Using docker image sha256:05edf996f2cf3a0be9c332ca88e4ffd1698b7d59b1c5318b48491033e062e639 for runmymind/docker-android-sdk:latest ...
Running on runner-cf4dbddf-project-918-concurrent-0 via git-ci-runner...
WARNING: Possibly zombie container runner-cf4dbddf-project-918-concurrent-0-predefined-1 is disconnected from network bridge
Reinitialized existing Git repository in /builds/android/MYPROJECT/.git/
Fetching changes...
Checking out 21ff9883 as branch_for_test_it_1...
Removing .gradle/
....
OK
На другой моей работе:
Running with gitlab-runner 11.10.1 (1f513601)
on android-runner-1 cf4dbddf
Using Docker executor with image runmymind/docker-android-sdk:latest ...
Using locally found image version due to if-not-present pull policy
Using docker image sha256:05edf996f2cf3a0be9c332ca88e4ffd1698b7d59b1c5318b48491033e062e639 for runmymind/docker-android-sdk:latest ...
Running on runner-cf4dbddf-project-918-concurrent-0 via git-ci-runner...
Reinitialized existing Git repository in /builds/android/MYPROJECT/.git/
Fetching changes...
Checking out 21ff9883 as branch_for_test_it_2...
ERROR: Job failed (system failure): Error: No such container: 9721b3efbc71ababc12da8606307bd36c56b08e6500605a3ddbc9e42855498d6 (executor_docker.go:976:0s)
Я понимаю, что она работает с одним контейнером напроект (не для отрасли).И насколько я понимаю, у нас есть два способа решить эту проблему:
1) узнать, как создать новый контейнер для каждой ветви;
2) узнать, как сделать очередь gitlab-runner для исполнителя Docker
Я хочу спросить вас, как мы можем реализовать один из способов?Как по мне, лучше использовать второй способ, потому что в первом случае мы будем использовать много ресурсов компьютера.Но это нормально.Скажите пожалуйста, как мы можем решить эти варианты, которые я написал выше?