Hugo自动化与Travis ci和Github页面

Hugo自动化与Travis ci和Github页面,github,travis-ci,github-pages,static-site,hugo,Github,Travis Ci,Github Pages,Static Site,Hugo,我正在使用github来托管我的博客,并使用静态站点生成器HUGO使之成为可能,但将其脱机并编译,然后将公用文件夹上载到gh页面或使其在docs文件夹中可用,这太繁琐了 所以我想自动化这个过程,所以每当我在内容中创建一个新的.md文件时,它应该生成静态站点,并将公用文件夹复制到gh页面或以下组合- “源”分支中的源文件和发布到master的“公共”内容[用于用户和组织页面] 主控中的源文件并将“公用”文件夹内容发布到“gh页面” 你还有什么其他的建议吗 注意:我主要想使用Travis ci,

我正在使用github来托管我的博客,并使用静态站点生成器HUGO使之成为可能,但将其脱机并编译,然后将公用文件夹上载到gh页面或使其在docs文件夹中可用,这太繁琐了

所以我想自动化这个过程,所以每当我在内容中创建一个新的.md文件时,它应该生成静态站点,并将公用文件夹复制到gh页面或以下组合-

  • “源”分支中的源文件和发布到master的“公共”内容[用于用户和组织页面]
  • 主控中的源文件并将“公用”文件夹内容发布到“gh页面”
  • 你还有什么其他的建议吗

注意:我主要想使用Travis ci,但任何其他自动化平台也很酷

为GitHub页面建立Hugo博客的一个好方法是使用两个独立的存储库:

  • 第一个存储库包含博客源
  • 第二个存储库包含生成的内容
命名第二个存储库
username.github.io
(使用您的github用户名)。GitHub页面将自动将其部署到

然后将第二个存储库作为git子模块添加到第一个存储库中。子模块需要位于
/public
,这是Hugo生成静态内容的地方。这允许您轻松地将生成的内容推送到GitHub

git子模块添加\
https://github.com/username/username.github.io.git \
公众的
官方Hugo教程中对这个过程进行了更详细的解释


连续积分 如果希望实现完全自动化,可以为第一个存储库设置Travis CI。我在这里写了一篇关于此设置的详细文章:

Travis CI调用Hugo并将生成的内容推回到GitHub,GitHub页面将在那里部署它。为此,您需要一个
.travis.yml
文件和一个小型部署脚本:

.travis.yml

---
install:
  - curl -LO https://github.com/gohugoio/hugo/releases/download/v0.55.4/hugo_0.55.4_Linux-64bit.deb
  - sudo dpkg -i hugo_0.55.4_Linux-64bit.deb

script:
  - hugo

deploy:
  - provider: script
    script: ./deploy.sh
    skip_cleanup: true
    on:
      branch: master
deploy.sh

#/bin/bash
echo-e“\033[0;32M向GitHub发布更新…\033[0m”
cd公众
如果[-n“$GITHUB\u AUTH\u SECRET”]
然后
触摸~/.git凭证
chmod 0600~/.git凭证
echo$GITHUB\u AUTH\u SECRET>~/.git凭据
git config credential.helper存储
git config user.email“username@users.noreply.github.com"
git config user.name“username”
fi
git添加。
git提交-m“重建站点”
git push——原力头:master
最后,在Travis CI上设置一个环境变量
GITHUB\u AUTH\u SECRET
,以提供对
username.GITHUB.io
存储库的访问。博客文章还解释了如何为此使用单独的机器人帐户,限制CI访问
username.GITHUB.io
存储库。

现在(2020年10月),则不需要使用外部CICD服务(如Travis CI)

如中的“”所述,您可以使用GitHub操作

具体而言,s:

此GitHub操作将自动将您的项目部署到GitHub页面。
它可以配置为将生产就绪代码推送到您想要的任何分支,包括
gh页面
docs

它还可以处理跨存储库部署

例如:

name:构建和部署
on:[推]
工作:
构建和部署:
运行于:ubuntu最新版本
步骤:

-姓名:Checkout这并不能回答你的问题,但我和你在一个类似的地方,我最终选择了GitLab来主持我的博客。除非你必须使用GitHub,否则它可能值得一看。它在云上编译Hugo?GitLab是的。我在本地添加内容,然后在推送到远程时,它会构建网站,并且它是可用的ble作为一个静态站点。感谢您将尝试并查看它是否有效:)