Laravel 使用Github操作,如何构建准备部署的资产?

Laravel 使用Github操作,如何构建准备部署的资产?,laravel,continuous-integration,yaml,github-actions,Laravel,Continuous Integration,Yaml,Github Actions,我有一个Laravel应用程序,一切都是标准的,作为我部署过程的一部分,我需要运行npm运行生产来构建资产。我希望这是我的CI/CD的一部分,我正在使用GitHub操作 我的行动如下: name: Laravel on: push: branches: [ master ] pull_request: branches: [ master ] jobs: laravel-tests: runs-on: ubuntu-latest steps:

我有一个Laravel应用程序,一切都是标准的,作为我部署过程的一部分,我需要运行
npm运行生产来构建资产。我希望这是我的CI/CD的一部分,我正在使用GitHub操作

我的行动如下:

name: Laravel

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  laravel-tests:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Copy .env
      run: php -r "file_exists('.env') || copy('.env.example', '.env');"
    - name: Install Dependencies
      run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
    - name: Generate key
      run: php artisan key:generate
    - name: Directory Permissions
      run: chmod -R 777 storage bootstrap/cache
    - name: Create Database
      run: |
        mkdir -p database
        touch database/database.sqlite
    - name: Execute tests (Unit and Feature tests) via PHPUnit
      env:
        DB_CONNECTION: sqlite
        DB_DATABASE: database/database.sqlite
      run: vendor/bin/phpunit    
    - uses: actions/setup-node@v1
      with:
        node-version: '10.x'   
    - name: Compile assets
      run: |
        npm install
        npm run production
    - name: Deploy to Laravel Forge
      run: curl ${{ secrets.FORGE_DEPLOYMENT_WEBHOOK }}
这个很好。然而,我相信这些资产正在虚拟机中编译。一旦一切都通过了,我点击了Laravel Forge的部署挂钩,我的项目就被部署了。部署由Forge进行,SSH进入机箱,git拉动,运行artisan命令。生产编译的资产不在回购协议中,它们卡在虚拟机中,一旦运行就会消失


如何将构建在GitHub Actions VM上的资产放入Forge部署中?我能想到的唯一方法是通过git将它们添加到VM中,但这会触发另一次操作运行,因此这不是最好的方法。

如果使用默认的
GITHUB\u令牌,您可以从操作中推送而不触发另一个操作

当您使用存储库的
GITHUB\u令牌
代表GITHUB操作应用程序执行任务时,
GITHUB\u令牌
触发的事件将不会创建新的工作流运行。这样可以防止意外创建递归工作流运行。例如,如果工作流运行使用存储库的
GITHUB\u令牌
推送代码,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行


(来源:)

如果您使用的是默认的
GITHUB\u令牌,则可以从您的操作中推送而不触发另一个操作

当您使用存储库的
GITHUB\u令牌
代表GITHUB操作应用程序执行任务时,
GITHUB\u令牌
触发的事件将不会创建新的工作流运行。这样可以防止意外创建递归工作流运行。例如,如果工作流运行使用存储库的
GITHUB\u令牌
推送代码,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行


(来源:)

你明白了吗?你明白了吗?