Re: CircleCI 2.0: сборка каталога для развертывания scp
Я запутался в том, что касается исходной папки, которую можно использовать для развертывания на другом сервере через SSH (scp, rsync и т. Д.). Я пробовал рабочий_каталог из моей сборки, я пробовал ~ / repo_name и несколько других вариантов, но безуспешно.
Я просто пытаюсь построить демо circleci-demo-php-laravel в качестве теста.
https://github.com/dmgig/circleci-demo-php-laravel/blob/circleci-2.0/.circleci/config.yml
Спасибо за любую помощь.
Вот шаг развертывания, на котором я зациклен. Я пробовал обо всем — установить рабочий_каталог в сборке и развертывании, используя CIRCLE_WORKING_DIRECTORY
Переменная env, которая создается при раскрутке машины развертывания. Я в полной растерянности.
run:
name: Deploy Over SSH
command: scp -r {WHAT_IS_THE_BUILD_DIR} serveradmin%[email protected]:~/domains/circleci.mydomain.org/html/
ОБНОВИТЬ
Несмотря на то, что я разобрался с предложенным ниже решением, объединяющим развертывание под сборкой, я все еще смущен отношением между сборкой и развертыванием, когда они находятся под отдельными заданиями. Если кто-то может это прояснить, было бы здорово.
То, что у меня было не так, что я выяснил примерно через 5 минут после публикации награды, было разницей в моем build
а также deploy
шаги.
Неправильно
jobs:
build:
docker:
- image: circleci/php:7.1-node-browsers
...
deploy:
machine:
enabled: true
Правильный
jobs:
build:
docker:
- image: circleci/php:7.1-node-browsers
...
deploy:
docker:
- image: circleci/php:7.1-node-browsers
ЗАВЕРШЕНИЕ В результате я получил супер простую сборку и развертывание через rsync.
Я фактически полностью удалил «рабочий процесс» с отдельными разделами сборки и развертывания — для меня это было бесполезно. Я мог сделать все на этапе сборки.
Это очень базовая настройка, которая просто проверяет репозиторий, устанавливает требования композитора, а затем передает все на сторонний сервер (в моем случае, MediaTemple) через rsync.
Единственным другим шагом было создание и установка ключа SSH в проект CircleCI (для этого есть много обучающих программ).
# PHP CircleCI 2.0 configuration file
#
version: 2
jobs:
build:
docker:
- image: circleci/php:7.1-node-browsers
working_directory: ~/beta
steps:
- checkout
- run: php composer.phar install
- run: pwd
- deploy:
name: Deploy Over SSH
command: rsync -e "ssh -o StrictHostKeyChecking=no" -arvc --exclude .git ~/beta/ [email protected]:~/domains/mysite.org/html/beta
Других решений пока нет …