扫码阅读
手机扫码阅读

GitHub Actions 真香系列之scp和ssh

182 2024-01-25
文章摘要

概述

尽管 Kubernetes (k8s) 被用于服务部署,但仍有业务依赖传统 LNMP(Linux, Nginx, MySQL, PHP)部署方式。本文讨论在不同环境下部署 Web 站点的问题,其中包括测试环境的持续部署和生产环境的上线流程。

测试环境

测试环境兼作开发环境,区分本地和云数据库。本地开发使用 PhpStorm 的 FTP 功能上传代码,而其他开发者提交代码后,使用 webhook 自动进行代码拉取。这里的 webhook 实现依赖于作者开发的 sy-records/git-deploy 工具,该工具支持多个 Git 平台,并需要 PHP 和 Swoole 环境。如果没有这些环境,还可以使用 swoole-cli 启动。

生产环境

生产环境部署前需要打包操作,使用 GitHub Actions 实现。最初尝试使用公私钥进行代码拷贝和解压,但未成功。后来同事推荐使用 ssh-action 执行远程 SSH 命令。虽然这个 action 能通过密码或私钥远程操作,作者最终没采用它。进一步探索后,发现 scp-action 更符合需求,用以将代码包复制到下载服务器,再从生产环境下载并解压部署。部署简化为在服务器上执行一个 PHP 脚本来引入下载链接,尽管也可以基于 ssh-action 直接操作,但由于其他限制,仍选择手动执行。

想要了解更多,点击 查看原文