У меня есть репозиторий Gitlab с php -файлами, который развертывается с помощью этой команды rsyn c с Gitlab CI:
- rsync -avz -e "ssh -i ~/.ssh/id_rsa -p $SERVER_PORT" /builds/account-name/group-name/project-name/* $SERVER_USER@$SERVER_HOST/$SERVER_DOMAIN
Где /builds/account-name/group-name/project-name/*
- это root нашего репозитория.
Теперь я хочу добавить шаг, который устанавливает Composer зависимостей перед переносом репозитория на наш сервер, но я не могу понять, как добраться до установленных зависимостей на этапе развертывания , Файл composer. json находится в /1/src/
:
Шаг build
, который я добавил до работы сценария развертывания, выглядит следующим образом:
build_master:
image: composer
stage: build
only:
- dev
script:
- composer install -d /builds/account-name/group-name/project-name/1/src/ --ignore-platform-reqs
artifacts:
paths:
- vendor/
expire_in: 30 minutes
Журналы в Gitlab показывают, что все пакеты устанавливаются, но когда он пытается загрузить артефакты для задания, это показывает:
Uploading artifacts for successful job
Uploading artifacts...
WARNING: vendor/: no matching files
ERROR: No files to upload
Job succeeded
Я надеялся, что composer установит все в vendor
папка, в которой Gitlab хранит свои артефакты. На этапе развертывания я думал о добавлении еще одной строки rsyn c, подобной приведенной выше, и изменении исходной папки на vendor/
и назначения на $SERVER_USER@$SERVER_HOST/$SERVER_DOMAIN/1/src/vendor
.
Я не могу понять, где это идет не так. Возможно, это как-то связано с папкой artifact-vendor, которая также должна относиться к 1/src/
, и мне было интересно, нужны ли мне две строки rsyn c в сценарии развертывания вместо установки пакетов composer в нужная папка в папке /builds/.../project-name/ напрямую, так что требуется только одно действие rsyn c.