我有一个带有 .php 文件的 Gitlab 存储库,它通过带有 Gitlab CI 的 rsync 命令部署:
- 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/*我们存储库的根在哪里。
现在我想在将存储库传输到我们的服务器之前添加一个安装 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
我希望作曲家将所有内容安装到vendor文件夹中,Gitlab 将其存储在它的工件中。在部署步骤中,我正在考虑添加另一个像上面那样的 rsync 行,并将源文件夹更改vendor/为$SERVER_USER@$SERVER_HOST/$SERVER_DOMAIN/1/src/vendor.
我无法弄清楚这哪里出错了。也许它与 artifact-vendor 文件夹也需要相对于有关1/src/,我想知道我是否真的需要部署脚本中的两条 rsync 行,而不是将作曲家包安装到 /builds/ 中的正确文件夹中.../project-name/ 文件夹,因此只需要一个 rsync 操作。
冉冉说