type
status
date
slug
summary
tags
category
icon
password
在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。 您可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。
来自 docs.github.com
简单来说,Github Actions 是 Github 提供的一种免费自动化部署平台,在每个 Git 仓库中都可以看到,如下图,执行 Actions 时,Github 会提供一个服务器进行一些自动化操作,比如提交代码时触发自动编译,然后把编译结果部署到指定的服务器,如果是无须编译的代码,也可以利用 Github 提供的这台服务器通过 SSH 远程控制自己服务器拉取代码,然后在自己服务器执行其他命令操作。
本次用 vue 项目来做示范,实现效果是:提交代码到 Github 时,自动编译,然后将编译好的 dist 目录部署到自己服务器上。
所需准备
服务器配置
- 一台服务器
- 生成私钥和公钥(如何生成这里不做教程)
服务器的连接最好用私钥和公钥的方式连接
公钥:以
ssh-rsa
开头,xxx.pub 格式保存
私钥:以如下格式开头和结尾,xxx.pem 格式保存向仓库添加服务器配置
在仓库的 Settings -> Secrets -> New repository secret 分别添加三个服务器信息值:
(命名只是个变量,方便读取,不一定是这么写)
host:
创建一个变量命名为 SSH_HOST,填写你的服务器 ip 或者域名
key:
创建一个变量命名为 DEPLOY_KEY,填写你的服务器 ssh 私钥
比如:
username:
创建一个变量命名为 SSH_USERNAME,填写连接服务器的用户名
比如:root
创建配置文件
- 如果 .github/workflows 目录不存在,请在 GitHub 的仓库中创建此目录。
- 在 .github/workflow 目录中,创建一个名为 deploy.yml 的文件。
自动编译模式
将以下 YAML 内容复制到 deploy.yml 文件中:
到此,配置就完成了,只要指定的分支提交代码时,都会触发,也可以在仓库的 Actions 中查看触发日志
纯 SSH 模式
当然,如果觉得编译后部署到服务器太慢了,也可以用纯命令的方式,直接在自己服务器拉取代码后编译
文献
- Author:Teo
- URL:https://teojs.com/article/af5aae4f-5e9c-424b-ae4d-76db8fda55cb
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!