# #docker #gitlab #yaml #gitlab-ci #gitlab-ci-runner
Вопрос:
Поэтому я пытаюсь заставить свой конвейер работать, но я все время застреваю.
У меня есть docker runner для моего файла git-ci.yml. Я делаю это, потому что мои ошибки на этапе развертывания с запусками оболочки (но моя сборка, тестирование и этап sonarqube работают с запуском оболочки)
**git-ci.yml**
image: docker:latest
stages:
- build
- sonarqube-check
- test
- deploy
cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
image: gradle:jre11-slim
script:
- chmod x gradlew
- ./gradlew assemble
artifacts:
paths:
- build/libs/*.jar
expire_in: 1 week
only:
- master
sonarqube-check:
stage: test
image: gradle:jre11-slim
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache:
key: "${CI_JOB_NAME}"
paths:
- .sonar/cache
script: ./gradlew sonarqube
allow_failure: true
only:
- master
test:
stage: test
script:
- ./gradlew check
deploy:
stage: deploy
image: gradle:latest
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=heroku-coalition --api-key=$HEROKU_API_KEY
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
only:
- master
after_script:
- echo "End CI"
Сначала у меня возникли ошибки в моем java home, поэтому я переключил изображение на этап сборки. Теперь я сделал это и продолжаю получать ошибки в разрешении, поэтому я добавил chmod x gradlew
Но я получаю эту ошибку, когда добавляю эту строку:
chmod: изменение разрешений «gradlew»: Операция не разрешена
И когда я удаляю строку chmod gradlew, я получаю:
/bin/bash: строка 115: ./gradlew: В разрешении отказано
Так что теперь я действительно не знаю, что делать. Короче говоря: Какой бегун я должен использовать, чтобы заставить этот файл yml работать, или как мне нужно будет соответствующим образом отредактировать этот файл yml?
Ответ №1:
Поэтому после некоторых исследований я наткнулся на tags
ключевое слово в gitlab. Это позволяет запускать 2 бегуна для 1 файла yml. Таким образом, я мог бы использовать бегун оболочки для моей сборки, тестирования и сонарки, а также бегун докера для моего развертывания!