使用GitHub Actions部署静态资源至GitHub Pages
本文档中的行动已经过时。GitHub官方现在提供了更完善的官方Action用于发布到GitHub Pages。建议直接使用官方解决方案。
这个已废弃的GitHub Action原本旨在帮助您将工作流目录(/github/workspace
)中的任意文件夹的静态内容部署到GitHub Pages上。它通过让Action实例执行git push
命令,将选定的资产文件夹(BUILD_DIR
)推送到您的GitHub仓库的gh-pages
分支,以便该分支被服务。如果在组织或用户仓库(如username/username.github.io
)中运行此操作,则会将其部署到master
分支。
重要提示: 如果您希望从仓库子目录(如docs/
)部署,请勿使用此Action,因为在那种情况下,您可以直接提交构建工件,无需额外的动作。
虽然这个Action现在已被官方替代,但理解其工作原理和流程对于熟悉GitHub Actions以及GitHub Pages的工作方式仍有所帮助。以下是关于这个Action的详细介绍:
项目介绍
maxheld83/ghpages
是一个简单易用的GitHub Actions,它的主要任务是将指定目录的静态内容推送到gh-pages
分支,从而实现GitHub Pages的更新。请注意,这个Action并不会构建任何内容,它仅仅负责部署。
项目技术分析
这个Action依赖于git push
命令进行文件推送,并且需要一个秘密的访问令牌来授权对gh-pages
分支的操作。默认的GITHUB_TOKEN
可以完成这一任务,但在某些情况下,可能需要创建一个具有repo
权限的个性化访问令牌(PAT),并以GH_PAT
为名存储在仓库的秘密设置中。
项目及技术应用场景
- 您希望自动部署网站的静态文件,例如HTML、CSS、JavaScript等。
- 您的项目包含了自动生成的文档,需要定期更新至GitHub Pages。
- 在团队协作开发环境中,您想要自动化部署过程,减少手动操作。
项目特点
- 简单易用:不需要复杂的配置,只需要定义要部署的目录。
- 自动化:与GitHub Actions结合,可以在push或pull request事件触发后自动执行部署。
- 安全性:通过访问令牌确保安全的
git push
操作。 - 兼容性:适用于个人和组织的GitHub Pages项目。
示例使用方法:
name: Deployment
"on":
- push
- pull_request
jobs:
deploy_ghpages:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- run: echo $GITHUB_SHA >> public/index.html
- uses: maxheld83/ghpages@v0.3.0
env:
BUILD_DIR: public/
GH_PAT: ${{ secrets.GH_PAT }}
尽管此项目已经过时,但它仍然提供了一个了解如何使用GitHub Actions进行部署的基础。现在,我们鼓励您尝试使用官方的actions/deploy-pages
Action,享受更加无缝的GitHub Pages部署体验。