Continuous integration 当composer.lock使用SamKirkland/FTP Deploy通过github操作更改时,如何上载供应商/文件夹-Action@3.1.1

Continuous integration 当composer.lock使用SamKirkland/FTP Deploy通过github操作更改时,如何上载供应商/文件夹-Action@3.1.1,continuous-integration,continuous-deployment,github-actions,git-ftp,Continuous Integration,Continuous Deployment,Github Actions,Git Ftp,我试图通过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

我试图通过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包括

用于:

run:echo“vendor/:composer.lock”>.git ftp包含

但是,请记住:

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

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

见文件


编辑:如果您已经提交了composer.lock文件,并且希望最后一次重新加载供应商文件夹,请确保更改.lock文件。可能会添加一行或一个新的空格。

您是如何实现这一点的?这和作曲家本身有什么关系?