#laravel #yaml #bitbucket #continuous-deployment #bitbucket-pipelines
#laravel #yaml #bitbucket #непрерывное развертывание #bitbucket-конвейеры
Вопрос:
Это моя первая попытка настроить конвейеры или даже использовать любой инструмент CI / CD. Итак, прочитав документацию в Bitbucket, я добавил файл bitbucket-pipelines.yml в корень моего приложения Laravel для сборки. Вот файл.
image: php:7.4-fpm
pipelines:
default:
- step:
name: Build and test
caches:
- composer
script:
- apt-get update amp;amp; apt-get install -qy git curl libmcrypt-dev mariadb-client ghostscript
- yes | pecl install mcrypt-1.0.3
- docker-php-ext-install pdo_mysql bcmath exif
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --file name=composer
- composer install
- ln -f -s .env.pipelines .env
- php artisan migrate
- ./vendor/bin/phpunit
services:
- mysql
- redis
definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: "laravel-pipeline"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
MYSQL_USER: "homestead"
MYSQL_PASSWORD: "secret"
redis:
image: redis
Вышеуказанное отлично работает при создании приложения, выполнении тестов и т. Д. Но когда я добавляю нижеприведенное для развертывания, используя канал scp, я получаю уведомление о том, что либо мне нужно включить изображение, либо иногда в уведомлении говорится, что в записи сопоставления есть неправильный отступ.
- step:
name: Deploy to test
deployment: test
# trigger: manual # Uncomment to make this a manual deployment.
script:
- pipe: atlassian/scp-deploy:0.3.13
variables:
USER: '${remoteUser}'
SERVER: '${server}'
REMOTE_PATH: '${remote}'
LOCAL_PATH: '${BITBUCKET_CLONE_DIR}/*'
Я действительно не знаю yaml, и я впервые работаю с инструментом CI / CD, поэтому я потерялся. Может кто-нибудь подсказать мне, что я делаю неправильно?
Комментарии:
1. Установлены ли такие переменные, как ‘${server}’, в вашем bitbucket?
2. Да, я установил их внутри интерфейса конвейеров.
Ответ №1:
Ваш отступ для имени и развертывания не такой, как для скрипта. Попробуйте поместить все это в один и тот же отступ, подобный этому.
- step:
name: Deploy to test
deployment: test
script:
- pipe: atlassian/scp-deploy:0.3.13
variables:
USER: '${remoteUser}'
SERVER: '${server}'
REMOTE_PATH: '${remote}'
LOCAL_PATH: '${BITBUCKET_CLONE_DIR}/*'
Комментарии:
1. Похоже, это была проблема. Это и мне пришлось переместить раздел определений ниже шага развертывания… По крайней мере, скрипт запускается сейчас. Все еще сбой, но, похоже, проблема с разрешениями для моего пользователя ssh. Большое спасибо @Duje Basic