CircleCI 2.0: сборка каталога для развертывания scp / rsync

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%mydomain.org@mydomain.org:~/domains/circleci.mydomain.org/html/

ОБНОВИТЬ

Несмотря на то, что я разобрался с предложенным ниже решением, объединяющим развертывание под сборкой, я все еще смущен отношением между сборкой и развертыванием, когда они находятся под отдельными заданиями. Если кто-то может это прояснить, было бы здорово.

3

Решение

То, что у меня было не так, что я выяснил примерно через 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/ myuser@mysite.org:~/domains/mysite.org/html/beta
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector