0

我试图通过 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/ 目录。供应商文件夹上传需要很长时间。我怎样才能只上传 vendor/ 目录中的更改,或者如果只有 composer.lock 被修改,它将上传 vendor/. 或者我怎样才能让它变得简单、快速和容易?

4

1 回答 1

0

您可以更换:

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

为了:

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

但是请记住:

将上传供应商文件夹中的所有文件,甚至那些已经在服务器上的文件。如果本地文件被删除,它不会从该目录中删除文件。

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

请参阅此处的文档。

编辑:如果您已经提交了 composer.lock 文件,并且您想最后一次重新上传供应商文件夹,请确保更改 .lock 文件。也许添加一个新行或空格。

于 2020-09-11T17:56:18.580 回答