利用 GitHub Action 发布文章到阿里云 OSS
之前博客中 ,将 Hexo 源文件存放在 GitHub ,生成的静态站点手动上传到阿里云 OSS。每次发博客步骤太繁琐,所以尝试利用 GitHub 持续集成功能实现自动发布。
GitHub Action 介绍
GitHub Action 是一种持续集成服务,可以在我们对 Repo 进行 push、pull 等操作时,通过 workflow 的形式,自动执行一些任务。
一些基本概念和操作,可以参考官方文档或者阮一峰写的入门教程。
GitHub 中配置 OSS 授权信息
Action 通过 AccessKey 访问及操作 OSS,为了能让 Action 自动部署,我们需要创建 AccessKey 并将其配置到 Github 中
阿里云创建 AccessKey
参考获取AccessKey文档,创建 AccessKey 并进行授权管理对象存储服务(OSS)
使用 GitHub Secrets
Action 对应的 workflow 会以文件形式存放在 Repo 的 .github
中,虽然我们的 Repo 是 Private 的,不过为了安全起见,AccessKey 不能明文存存储在 workflow 中。这时候,就需要配合 GitHub 的 Secrets 功能了。
直接通过 Repo 的 Settings -> Secrets -> Action -> New repository secrets 创建四个 KV 项,用于存储 OSS 相关信息。这些信息,我们将在后续的 workflow 源码中会用到。
创建发布到 OSS 的 Action
新建 Action
在 Repo 中,通过 Actions -> New workflow -> set up a workflow yourself 即可进入工作流编辑界面。
实现 push 时发送到阿里云
直接上 main.yml
的源码
1 | # workflow 名称,执行时的标题 |
下次 Push 代码时,即可在 Action 中查看任务执行情况
附注
编写 Action 时遇到的问题
- 每个 Job 中,只能有一个
-
前缀,如下是一种错误写法
1 | - name: Setup Node |