Skip to main content

使用 GitHub actions 部署我的网站

· 2 min read

使用 GitHub actions 自动部署我的网站

我的网站由 Vuepress 和 Docsisy 搭建,根目录是 Docsify ,每个笔记是 Vuepress 。为了编译,自己做了个 GitHub action 来编译多个 Vuepress 项目 :https://github.com/wjftu/vuepress_1.x_compiler

Dockerfile

FROM node:14-slim

LABEL "com.github.actions.name"="vuepress1.x_compiler"
LABEL "author"="Jianfeng"

RUN apt update && yarn global add vuepress && yarn global add @vuepress/plugin-google-analytics

COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
#!/bin/bash

set -e

echo ''

# env
echo "node version: $(node -v)"
echo "npm version: $(npm -v)"

if [[ -z "$SOURCE_DIR" ]]; then
source="/"
else
source="$SOURCE_DIR"
fi

if [[ -z "$BUILD_SCRIPT" ]]; then
script="yarn && yarn docs:build"
else
script="$BUILD_SCRIPT"
fi


# Build vuepress project
echo "BUILD_SCRIPT: ${script}"
echo "github.workspace: ${GITHUB_WORKSPACE}"
dir="${GITHUB_WORKSPACE}/"




echo "npm view: `npm view vuepress`"
for i in ${source}
do
echo `ls`
cd ${dir}${i}
echo "start build in : `pwd`"
eval "${script}"
echo "${i} Build success"
done

echo "Build Success!"
© 2022 GitHub, Inc.
Terms
Privacy

虽然 Github actions market place 有现成的,但是没有多项目的,所以自己写了一个。其实不太懂 node.js ,感觉这样写可能不对,我怀疑 setup-node 之后直接编译就可以,不过这个 action 可以用。

.github/workflows/deploy.yml 文件中使用这个 action

name: deploy_to_gh
on: [push]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Copy Files
run: |
mkdir public
cp -r home/. public/
- name: Build
uses: wjftu/vuepress_1.x_compiler@master
env:
SOURCE_DIR: designPattern algorithmPractice
- name: Deploy
uses: wjftu/git_push_action@master
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
TARGET_REPO: wjftu/wjftu.github.io
TARGET_BRANCH: master
SOURCE_DIR: public

每次 push 即可自动编译和部署。

后来不用 Docsify 和 Vuepress 了,改为 Docusaurus ,不知道为什么官方文档介绍的 setup-node 的 Github actions 的编译方法不能用,然后继续用这个 action