当composer.lock使用SamKirkland通过github操作更改时,我如何上传供应商/文件夹/FTP-De



我试图通过github操作将laravel应用程序推送到ftp服务器。以下是我的deploy.yml文件中的片段。

jobs:
Deployment:
name: Deploy Action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.1.0
with:
fetch-depth: 2

- name: Create env file
run: |
touch .env
echo APP_NAME=MyAppName >> .env
echo APP_ENV=production >> .env
echo APP_DEBUG=false >> .env
echo LOG_CHANNEL=daily >> .env
echo DB_DATABASE=${{ secrets.DEV_DB_DATABASE }} >> .env
echo DB_USERNAME=${{ secrets.DEV_DB_USERNAME }} >> .env
echo DB_PASSWORD=${{ secrets.DEV_DB_PASSWORD }} >> .env
echo "!.env" > .git-ftp-include

- name: Cache dependencies
uses: actions/cache@v1
with:
path: ~/.composer/cache/files
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.3
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite
coverage: none
- name: Install Composer dependencies
run: composer install --prefer-dist --no-interaction --no-suggest

- name: Adding Vendor
run: echo "!vendor/" > .git-ftp-include

- name: FTP Deploy Action
uses: SamKirkland/FTP-Deploy-Action@3.1.1
with:
ftp-server: ftp://${{ secrets.DEV_FTP_SERVER }}
ftp-username: ${{ secrets.DEV_FTP_USERNAME }}
ftp-password: ${{ secrets.DEV_FTP_PASSWORD }}

每次作业运行时,都会将整个供应商/目录上传到FTP服务器上。上传供应商文件夹需要花费大量时间。我怎么能只上传vendor/目录中的更改,或者如果只有composer.lock被修改,它就会上传vendor/。或者我如何使它变得简单、快速和简单?

您可以替换:

run: echo "!vendor/" > .git-ftp-include

用于:

run: echo "vendor/:composer.lock" > .git-ftp-include

但是请记住:

将上传供应商文件夹中的所有文件,即使是已经在服务器上的文件。如果删除了本地文件,它将不会从该目录中删除文件。

如果包在新版本中删除了本地文件,则这可能是一个问题,因为该文件将保留在服务器上,可能会导致一些冲突。

请参阅此处的文档。

编辑:如果您已经提交了composer.lock文件,并且您想最后一次重新部署vendor文件夹,请确保更改.lock文件。也许可以添加一个新的行或空间。

最新更新