使用GitHub Actions自动化部署FTP

服务器 服务器产品
传统的 Web 开发人员常常喜欢通过 FTP 服务器直接编辑文件,而不是使用版本控制系统,主要原因是因为部署方便。利用 GitHub actions 可以非常简单地实现自动化部署。本文为大家展示一个基本的 PHP 示例。

传统的 Web 开发人员常常喜欢通过 FTP 服务器直接编辑文件,而不是使用版本控制系统,主要原因是因为部署方便。

利用 GitHub actions 可以非常简单地实现自动化部署。本文为大家展示一个基本的 PHP 示例。

1 开始使用 GitHub Actions

首先转到存储库并单击“操作”选项卡。然后创建工作流程。

图片图片

可以创建多个操作。这基本上会创建一个名为 .github/workflows 的文件夹结构。

在此文件夹下创建 .yml 文件,以设置有关操作的规则。

2 部署 PHP 应用程序

以下是 PHP 示例的 FTP 部署操作:

on: push
name: 🚀 Deploy website on push
jobs:
  web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    steps:
    - name: 🚚 Get latest code
      uses: actions/checkout@v3

    - name: PHP Version
      run: php --version

    - name: Validate composer.json and composer.lock
      run: composer validate

    - name: Get Composer cache directory
      id: composer-cache
      #run: echo "::set-output name=dir::$(composer config cache-files-dir)"
      run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

    - name: Cache Composer vendor directory
      uses: actions/cache@v3
      with:
        path: ${{ steps.composer-cache.outputs.dir }}
        key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
        restore-keys: |
          ${{ runner.os }}-composer-
    - name: Install PHP dependencies
      run: composer install --no-progress --no-dev --optimize-autoloader

    - name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@v4.3.4
      with:
        server: ${{ secrets.FTP_SERVER }}
        username: ${{ secrets.FTP_USERNAME }}
        password: ${{ secrets.FTP_PASSWORD }}
        local-dir: ./
        server-dir: ./api/
        log-level: verbose

解释一下规则;

  • on: 这是确定操作何时运行的地方。
  • name: 上文提到可以有多个操作,这是此操作的名称。
  • steps: 在同步操作之前设置步骤。在此示例中,检查 composer 文件和 PHP 版本,还使用另一个操作来缓存供应商文件。

最后,使用 FTP-Deploy-Action 将文件上传到服务器。

对于此部分,可以在 GitHub 密钥中存储。

图片图片

基本注意事项:

**local-dir: ** 此参数表示,可以指定 Git 仓库中的特定文件夹。

**server-dir: ** 此参数则指定了服务器上的文件夹。在示例中,直接将文件推送到了 /api/ 文件夹中。

责任编辑:武晓燕 来源: Java学研大本营
相关推荐

2022-11-15 17:07:40

开发自动化前端

2021-05-13 21:21:50

React应用GitHub

2019-11-26 08:00:00

GitHubGitHub ActiAzure

2019-08-12 13:47:41

GitHub代码开发者

2024-02-20 08:08:43

2014-03-11 11:10:10

PowerShell自动化脚本

2021-05-07 08:03:15

微服务JenkinsGitHub项目

2013-03-22 15:15:28

自动化管理部署虚拟化

2017-10-09 17:52:57

MySQL自动化测试GitHub

2013-11-27 11:34:43

自动化部署Python

2023-04-06 07:09:25

自动化部署Actions

2015-02-04 09:17:38

亚马逊AWS云自动化

2017-12-17 21:58:18

2022-03-30 09:43:19

jscodeshif自动化重构开发

2013-04-11 17:31:28

运维自动化Cobbler

2015-11-04 10:22:23

Chef自动化应用栈

2016-12-20 16:47:25

Hadoop部署脚本

2009-12-15 17:43:04

Ruby自动化驱动

2012-02-09 13:31:03

HibernateJava

2021-04-19 14:00:03

ExchangelibPython邮箱自动化管理
点赞
收藏

51CTO技术栈公众号