Mad*_*ghe 2 deployment ftp github laravel
是否可以使用 GitHub Action 和 GitHub FTP Deploy将Laravel Web 应用程序部署到共享托管?如果可能的话我应该如何更改.github\workflows\master.yml?
on:
push:
branches:
- master
name: Deploy website on push
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.2.0
with:
server: ${{ secrets.ftp_server }}
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: /
Run Code Online (Sandbox Code Playgroud)
看起来您已经非常接近,但缺少 2 个重要步骤:设置临时 PHP 环境,并使用该环境安装依赖项(Composer)。
GitHub 操作设置
本指南假设您有一个可用的 Laravel 安装、一个 GitHub 帐户和一个可以使用用户名/密码通过 FTP 访问的共享托管帐户。
我发现此视频https://www.youtube.com/watch?v=UNWIXYSZfZY有助于基本了解如何部署简单的应用程序。为了使这个答案对更广泛的人有帮助,我将简要概述我的设置。实际上没有任何特定于 Laravel 的步骤。
工作流程目录设置
.github\workflows在项目的根目录中创建目录。在该workflows目录中,创建一个以要推送到共享托管帐户的分支命名的 yml 文件。前任。master.yml、staging.yml等development.yml。如果您只有一个分支,则只需创建一个文件。名称很重要,应与分支机构的名称相匹配。
设计您的工作流程
这很大程度上取决于您的项目,但假设您有一个基本的 Laravel 应用程序,不需要 Node 等其他组件,那么这是一个基本的 GitHub Action,适用于我的各种项目。
基本操作文件由 2 个部分组成:工作流程和作业。工作流程触发作业。
工作流程
第 1-4 行表示每次我们push到master分支时都会运行该命令。
on:
push:
branches:
- master
Run Code Online (Sandbox Code Playgroud)
第 5 行是此工作流程的名称,将显示在您的“操作”页面上。将其设置为描述性内容。
name: Deploy website on push (Master)
Run Code Online (Sandbox Code Playgroud)
设置职位
此部分有 5 个职位。有些接受参数,有些则不接受。我不会在这里解释所有细节,但如果您需要详细信息,我会链接到相应的存储库。
name: Get latest code
uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)
name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
Run Code Online (Sandbox Code Playgroud)
name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
Run Code Online (Sandbox Code Playgroud)
composer.json从和文件安装依赖项composer.lock
。name: Install dependencies
run: composer install --prefer-dist --no-progress
Run Code Online (Sandbox Code Playgroud)
${{ secrets.ftp_username }}注意和的使用${{ secrets.ftp_password }}。这些是在您的存储库的机密部分中设置的。请参阅https://docs.github.com/en/actions/security-guides/encrypted-secretsname: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
Run Code Online (Sandbox Code Playgroud)
最终文件
on:
push:
branches:
- master
name: Deploy website on push (Master)
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
Run Code Online (Sandbox Code Playgroud)
运行工作流程
将.github\workflows\master.yml和其他内容(如果适用)签入您的 GitHub 存储库。如果没有签入这些文件,当您将更改推送到分支时,什么也不会发生。
修复控制台中显示的任何错误。
最后,您在评论中提到了一些有关 NPM 的内容。如果您将 Node 作为项目中的组件,您只需运行两个额外的步骤即可捆绑您的资产并与其余代码一起部署。
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |