首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
探索世界的好奇心万岁
Udacity
网易公开课
Godel, Escher, Bach: An Eternal Golden Braid
宝塔
V2EX  ›  分享发现

Github Actions + Hexo + Github Page 搭建博客

  •  1
     
  •   waterlaw · 33 天前 · 1773 次点击
    这是一个创建于 33 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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/[email protected]
    
        - name: Build and Deploy
          uses: JamesIves/[email protected]
          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
        1
    waterlaw   33 天前 via Android
    之前用 hexo 改完 md 都要 deploy, 现在 deploy 动作由 github action 来完成, 新建公有项目会看到多了 Actions 哦, 今天刚更新的😊。
        2
    loading   33 天前 via Android
    周末看看,谢谢
        3
    quqiuzhu   33 天前 via Android
    travis 一直是免费的,github actions 可以用,但有收费风险
        4
    orzorzorzorz   33 天前
    这还要手动 push 到 dev 才行,不如加上 schedule 定时触发
    https://github.com/orzyyyy/memo/blob/master/.github/workflows/deploy.yml
        5
    orzorzorzorz   33 天前
    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
        6
    asiaon123   33 天前 via Android
    兄得,这种没有营养的东西不要发出来了
        7
    waterlaw   33 天前 via Android
    @orzorzorzorz 是 github page 更新前会把就的删了,action 其实就是 docker 容器而已。
        8
    waterlaw   33 天前 via Android
    docker 的 entrypoint.sh 脚本会先将原有文件 git rm
        9
    vsitebon   33 天前
    @asiaon123 相比起同页面的其它某些主题,这个反而显得比较有营养了
        10
    MonoLogueChi   33 天前 via Android
    gh-pages 分支也可以用于 GitHub Page 啊。还有,.nojekyll 不创建一个吗
        11
    thet   33 天前 via iPhone
    我是 actions + hugo +firebase
        12
    hawhaw   33 天前 via Android
    @asiaon123 这个还好吧,不是那么没有营养的东西
        13
    waterlaw   33 天前 via Android
    @hawhaw 其实就是 github 在后台帮你 checkout 代码放到 docker 执行, 有点像 docker-compose 有没有,期待很久的功能终于出了(◔◡◔)
        14
    bequt   33 天前
    @thet firebase 文档吗? 好像免费一个月 10gb 流量传输
        15
    bequt   33 天前
    @thet 稳定么
        16
    asiaon123   33 天前 via Android
    @vsitebon 这个不能这么比,这种文章都烂大街,还一直发有什么意义
        17
    asiaon123   33 天前 via Android
    @hawhaw 烂大街的东西多发无益
        18
    waterlaw   33 天前 via Android
    @asiaon123 hexo 的确烂大街, 服务器到期了,本来想把 django 项目放上去, 使用 python3 自带 sqlite, 但 github 这次出的 action 可能还是给纯前端用的, 只能说一般般,没啥惊喜。
        19
    bequt   33 天前
    @waterlaw 自己思考写个发出来好些吧, 用别人的, 套一下就得了, 没什么 action 营养
        20
    waterlaw   33 天前 via Android
    @bequt github action 就这样, 我已经把文档看完了,docker + 脚本, 可惜是个坑, 想部署有数据库的最好还是买个服务器, 自己用容器, 世界上没有免费的午餐,github 给的也只是简单的 running.
        21
    thet   33 天前 via iPhone
    @bequt #15 非常稳定
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3867 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 05:40 · PVG 13:40 · LAX 21:40 · JFK 00:40
    ♥ Do have faith in what you're doing.