首页 > 文章列表 > 在PHP中使用GitHub Actions进行自动化构建和部署

在PHP中使用GitHub Actions进行自动化构建和部署

php GitHubActions 构建和部署
128 2023-06-19

随着网站和应用程序的不断发展,自动化构建和部署已经成为了一个必需的开发流程。 GitHub Actions 提供了一种快速、简单和可靠的方法来创建自动化构建和部署工作流。在本文中,我们将介绍使用 PHP 和 GitHub Actions 进行自动化构建和部署的步骤和最佳实践。

第一步:准备工作

在开始之前,我们需要一些基础知识和工具:

  • 一个 GitHub 账户及一个存储库
  • 一个用于 PHP 开发的代码编辑器,如 VS Code、Sublime Text 或 PHPStorm
  • 安装 PHP 和 Composer

第二步:配置 GitHub Actions

GitHub Actions 是一项基于事件驱动的工作流自动化服务,它允许您在代码更新或创建事件发生时运行自定义的脚本。下面是我们需要在存储库中提供的文件:

  1. .github/workflows/main.yml

在存储库的根目录中创建一个 .github/workflows 文件夹,并添加一个 main.yml 文件。该文件是我们自定义 GitHub Actions 工作流的核心。以下是包含 PHP 自动构建和部署任务的示例代码:

# This is a basic workflow to help you get started with Actions

name: PHP CI

# Controls when the action will run.
on:
  push:
    branches: [ master ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checkout the repository
      - name: Check out code
        uses: actions/checkout@v2

      # Set up PHP
      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "7.4" # Version of PHP to use
          extensions: |
            pdo_mysql # List of additional PHP extensions to install
          coverage: "none"

      # Install Composer dependencies
      - name: Install Composer dependencies
        run: composer install

      # Run PHPUnit tests
      - name: Run tests
        run: vendor/bin/phpunit

      # Deploy to a remote server (optional)
      - name: Deploy
        uses: easingthemes/ssh-deploy@v2.3.8
        with:
          ssh-key: ${{ secrets.SSH_KEY }}
          remote_host: example.com
          remote_user: deploy
          local_path: path/to/code
          remote_path: /var/www/html

解释一下 main.yml 中的内容:

  • name:指定工作流程的名称。
  • on:指定运行工作流程的事件。此处为代码提交至“master”分支时触发,也可以自定义其他事件。
  • jobs:一个或多个作业,执行一个或多个步骤。
  • runs-on:设置作业执行的操作系统。此处为最新的 Ubuntu 版本。
  • uses:使用 action(操作)的版本(@v2)。
  • with:指定操作的必要输入参数。
  • run:运行 shell 命令,此处是运行 PHPUnit 测试。
  • secrets:保存您要使用的敏感信息。

此处的示例包括从构建和运行PHPUnit测试到部署到远程服务器的所有步骤。使用 easingthemes/ssh-deploy 操作可以方便地将代码部署到生产环境。

第三步:配置 SSH 密钥

在部署到远程服务器之前,我们需要为 GitHub Actions 提供远程服务器的 SSH 私钥。在 GitHub 存储库的“Settings”选项卡中,点击“Secrets”,创建名为“SSH_KEY”的新密钥,并将您的 SSH 私钥粘贴到“Value”输入框中。

第四步:测试

在您的存储库的“Actions”选项卡中,您应该看到从上次提交以来的所有 GitHub Actions 工作流。如果您的自定义工作流程已经通过了所有测试,您将会看到一个绿色的“passing”标志。如果未通过,您可以查看错误日志以了解失败的原因。

第五步:部署到生产环境

当您的代码准备好发布时,只需将其合并到主分支并提交到 GitHub 存储库中。GitHub Actions 将自动运行自定义工作流程并将代码部署到远程服务器。成功后,您可以在远程服务器上访问新代码并查看更改。

总结

使用 PHP 和 GitHub Actions 进行自动化构建和部署,可以加快构建和测试的速度,并增强代码的可靠性和可重复性。这也可以帮助减轻开发者的工作负担,让他们更加专注于应用程序和网站的创新和功能。