利用GitHub Action编译Candy

2021 年 1 月 10 日 星期日(已编辑)
189
3
这篇文章上次修改于 2021 年 1 月 10 日 星期日,可能部分内容已经不适用,如有疑问可询问作者。

利用GitHub Action编译Candy

前言

突然最近想玩玩静态网页,刚好(@innei)有一个静态网页程序,顺便clone下来玩下了

我搭建的candy:candy.iucky.cn,感觉很不错啊!

GitHub项目:https://github.com/Innei/candy

部署项目

innei给出的Deploy方法

innei给出的Host on Github方法是:

在 Github 上新建一个仓库, 然后把out目录下的文件上传, 开启GitHub Pages托管即可.

Deploy gh-pages

我感觉这样子编译,编译之后下载,下载再部署,好麻烦,干脆用GitHub action实现(而且我的服务器CPU不够🧱)

name: Candy Deploy

on:
  push:
  schedule:
  # 定时任务
    - cron: '0 * * * *'
jobs:
    build:
        name: Build candy
        runs-on: ubuntu-latest
        steps:
        - name: checkout
          uses: actions/checkout@v2
        - name: Setup Node.js environment
          uses: actions/setup-node@v2.1.4
        - name: Candy Install
          run: yarn
        - name: Build Out Candy
          run: yarn build
        - name: Deploy
          uses: peaceiris/actions-gh-pages@v3
          with:
            github_token: ${{ secrets.GITHUB_TOKEN }}
            publish_dir: ./out

编译导出Artifact

干脆直接把生成的网页打包出来

name: Build

on:
  push:
  schedule:
  # 定时任务
    - cron: '0 * * * *'
jobs:
    build:
        name: Build candy
        runs-on: ubuntu-latest
        steps:
        - name: checkout
          uses: actions/checkout@v2
        - name: Setup Node.js environment
          uses: actions/setup-node@v2.1.4
        - name: Candy Install
          run: yarn
        - name: Build Out Candy
          run: yarn build
        - name: Upload Candy Build Artifact
          uses: actions/upload-artifact@v2.2.2
          with:
            name: Out
            path: ./out

这样子的话就会生成Artifact,但是国内下载速度。。我没找到什么加速的方法

只能用NDM下载,但是会依然出现time out情况

Git Push

name: Build

on:
  push:
  schedule:
  # 定时任务
    - cron: '0 * * * *'
jobs:
    build:
        name: Build candy
        runs-on: ubuntu-latest
        steps:
        - name: checkout
          uses: actions/checkout@v2
        - name: Setup Node.js environment
          uses: actions/setup-node@v2.1.4
        - name: Candy Install
          run: yarn
        - name: Build Out Candy
          run: yarn build
        - name: Upload Candy Build Artifact
          uses: actions/upload-artifact@v2.2.2
          with:
            name: Out
            path: ./out
        - name: tar file
          run: |
            tar cf Out.tar.gz out
            sudo rm -rf .next
            sudo rm -rf out
            sudo rm -rf node_modules
        - name: Git Commit and Push
          uses: github-actions-x/commit@v2.6
          with:
            github-token: ${{ secrets.GITHUB_TOKEN }}
            commit-message: Bot Build
            email:  1596355173@qq.com
            name: wibus-wee

这个样子的话,就又生成Artifact,又将生成的html打包push上项目,再用一些工具加速下载就好了

当然我们也可以在服务器上运行这么一个sh

echo "wget Out"
wget https://raw.githubusercontent.com/wibus-wee/candy_ACTION/main/Out.tar.gz
tar -xf Out.tar.gz
rm -rf Out.tar.gz
rm -rf /www/wwwroot/candy.iucky.cn/*
cp -rf out/* /www/wwwroot/candy.iucky.cn/
rm -rf out

candy.iucky.cn是那个放置的目录,这些运行就直接同步了

但是缺点很明显,当我本地git push,必须先git pull,那个压缩文件挺大块头6.8 MB(我指国内下载的话)

所以还在想新的方法,目前只能网页端上传文档

${{ secrets.GITHUB_TOKEN }}

Git push的yml有个变量,你需要去自己设置的

前往 https://github.com/settings/tokens

点击Generate new token,根据下面的图片来操作

之后点击Generate token 即可

合起来的yml

name: Build

on:
  push:
  schedule:
  # 定时任务
    - cron: '0 1 * * 6'
jobs:
    build:
        name: Build candy
        runs-on: ubuntu-latest
        steps:
        - name: checkout
          uses: actions/checkout@v2
        - name: Setup Node.js environment
          uses: actions/setup-node@v2.1.4
        - name: Candy Install
          run: yarn
        - name: Build Out Candy
          run: yarn build
        - name: Upload Candy Build Artifact
          uses: actions/upload-artifact@v2.2.2
          with:
            name: Out
            path: ./out
        - name: Deploy
          uses: peaceiris/actions-gh-pages@v3
          with:
            github_token: ${{ secrets.GITHUB_TOKEN }}
            publish_dir: ./out
          - name: Git Commit and Push
          uses: github-actions-x/commit@v2.6
          with:
            github-token: ${{ secrets.GITHUB_TOKEN }}
            commit-message: Bot Build
            email:  1596355173@qq.com
            name: wibus-wee

🈶️三个动作:Git Push,deploy,upload artifact

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...