V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waterlaw
V2EX  ›  分享发现

Github Actions + Hexo + Github Page 搭建博客

  •  1
     
  •   waterlaw · 2019-10-16 05:42:37 +08:00 · 6646 次点击
    这是一个创建于 1867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github Page 只能在 master 分支发布, 且仓库名必须为[用户名]-github.io, 所以 Hexo 配置我放在 dev 分支,github action

    定义了一个 workflow, 放在项目的 .github/workflows/nodejs.yml , 使用执行完 yml workflow 流程就会生成到 master 分

    支, 执行完脚本的 master 分支就是博客的 html/css/js。

    参考 github action https://github.com/JamesIves/github-pages-deploy-action,

    我的 blog 配置仓库 https://github.com/water-law/water-law.github.io

    yml: https://github.com/water-law/water-law.github.io/blob/dev/.github/workflows/nodejs.yml

    ps: 记得把 头像->profile->Developer settings->Personal access tokens 复制到项目 settings->Secrets

    github action: nodejs.yml 如下

    name: GitHub Actions Build and Deploy Demo
    on:
      push:
        branches:
          - dev
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
          uses: actions/checkout@master
    
        - name: Build and Deploy
          uses: JamesIves/github-pages-deploy-action@master
          env:
            ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
            BASE_BRANCH: dev
            BRANCH: master
            FOLDER: public
            BUILD_SCRIPT: npm i -g hexo && npm install && hexo generate
    
    
    21 条回复    2019-10-16 12:01:01 +08:00
    waterlaw
        1
    waterlaw  
    OP
       2019-10-16 06:10:59 +08:00 via Android
    之前用 hexo 改完 md 都要 deploy, 现在 deploy 动作由 github action 来完成, 新建公有项目会看到多了 Actions 哦, 今天刚更新的😊。
    loading
        2
    loading  
       2019-10-16 07:43:15 +08:00 via Android
    周末看看,谢谢
    quqiuzhu
        3
    quqiuzhu  
       2019-10-16 07:53:28 +08:00 via Android
    travis 一直是免费的,github actions 可以用,但有收费风险
    orzorzorzorz
        4
    orzorzorzorz  
       2019-10-16 07:58:28 +08:00
    这还要手动 push 到 dev 才行,不如加上 schedule 定时触发
    https://github.com/orzyyyy/memo/blob/master/.github/workflows/deploy.yml
    orzorzorzorz
        5
    orzorzorzorz  
       2019-10-16 08:03:19 +08:00
    1. JamesIves/github-pages-deploy-action 是 rebase 到目标分支的。比如这里的 BRANCH 是 master,这分支上有 1000 个 commit,那就会 rebase master 到 gh-pages,gh-pages 上会多出 1000 个 commit,主页的绿点特别难看。https://github.com/orzyyyy,看看这主页,有两千条 commit 是这 action 产生的。
    2. deploy 如果中途报错,这 action 会直接帮你把 gh-pages 这个分支删了,不知道为什么。

    所以 deploy 的 action,我推荐用 https://github.com/peaceiris/actions-gh-pages
    asiaon123
        6
    asiaon123  
       2019-10-16 08:05:33 +08:00 via Android
    兄得,这种没有营养的东西不要发出来了
    waterlaw
        7
    waterlaw  
    OP
       2019-10-16 08:19:40 +08:00 via Android
    @orzorzorzorz 是 github page 更新前会把就的删了,action 其实就是 docker 容器而已。
    waterlaw
        8
    waterlaw  
    OP
       2019-10-16 08:25:03 +08:00 via Android
    docker 的 entrypoint.sh 脚本会先将原有文件 git rm
    vsitebon
        9
    vsitebon  
       2019-10-16 08:46:40 +08:00
    @asiaon123 相比起同页面的其它某些主题,这个反而显得比较有营养了
    MonoLogueChi
        10
    MonoLogueChi  
       2019-10-16 08:55:17 +08:00 via Android
    gh-pages 分支也可以用于 GitHub Page 啊。还有,.nojekyll 不创建一个吗
    thet
        11
    thet  
       2019-10-16 08:57:48 +08:00 via iPhone
    我是 actions + hugo +firebase
    hawhaw
        12
    hawhaw  
       2019-10-16 08:57:55 +08:00 via Android
    @asiaon123 这个还好吧,不是那么没有营养的东西
    waterlaw
        13
    waterlaw  
    OP
       2019-10-16 09:04:26 +08:00 via Android
    @hawhaw 其实就是 github 在后台帮你 checkout 代码放到 docker 执行, 有点像 docker-compose 有没有,期待很久的功能终于出了(◔◡◔)
    bequt
        14
    bequt  
       2019-10-16 09:57:37 +08:00
    @thet firebase 文档吗? 好像免费一个月 10gb 流量传输
    bequt
        15
    bequt  
       2019-10-16 09:58:00 +08:00
    @thet 稳定么
    asiaon123
        16
    asiaon123  
       2019-10-16 10:04:08 +08:00 via Android
    @vsitebon 这个不能这么比,这种文章都烂大街,还一直发有什么意义
    asiaon123
        17
    asiaon123  
       2019-10-16 10:04:32 +08:00 via Android
    @hawhaw 烂大街的东西多发无益
    waterlaw
        18
    waterlaw  
    OP
       2019-10-16 10:38:49 +08:00 via Android
    @asiaon123 hexo 的确烂大街, 服务器到期了,本来想把 django 项目放上去, 使用 python3 自带 sqlite, 但 github 这次出的 action 可能还是给纯前端用的, 只能说一般般,没啥惊喜。
    bequt
        19
    bequt  
       2019-10-16 10:59:51 +08:00
    @waterlaw 自己思考写个发出来好些吧, 用别人的, 套一下就得了, 没什么 action 营养
    waterlaw
        20
    waterlaw  
    OP
       2019-10-16 11:23:43 +08:00 via Android
    @bequt github action 就这样, 我已经把文档看完了,docker + 脚本, 可惜是个坑, 想部署有数据库的最好还是买个服务器, 自己用容器, 世界上没有免费的午餐,github 给的也只是简单的 running.
    thet
        21
    thet  
       2019-10-16 12:01:01 +08:00 via iPhone
    @bequt #15 非常稳定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   869 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.