扫码阅读
手机扫码阅读

GitHub Actions 真香系列之scp和ssh

363 2024-01-25

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:GitHub Actions 真香系列之scp和ssh
文章来源:
鲁飞
扫码关注公众号
文章摘要

概述

尽管 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 直接操作,但由于其他限制,仍选择手动执行。

想要了解更多内容?

查看原文:GitHub Actions 真香系列之scp和ssh
文章来源:
鲁飞
扫码关注公众号