使用 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