study-area-cn-homepage/.gitea/workflows/build.yaml

79 lines
2.9 KiB
YAML

name: Build and Publish
run-name: Build and Publish homepage (${{ gitea.actor }})
on: [push]
jobs:
Run:
runs-on: ubuntu-latest
steps:
- name: Info
run: echo "OS=${{ runner.os }} NAME=${{ gitea.event_name }} REPO=${{ gitea.repository }} BRANCH=${{ gitea.ref }} ST=${{ job.status }} RUNID=${{ gitea.run_id }}"
- name: Prepare Source
run: |
echo "--- write source ---"
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free">/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free">>/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free">>/etc/apt/sources.list
cat /etc/apt/sources.list
rm -rf /etc/apt/sources.list.d/*
echo "--- update source ---"
apt-get update
- name: Prepare Lftp
run: |
apt-get install lftp -y
- name: Checkout
uses: http://git.hmtsai.cn/actions/checkout@v4
- name: Cache Node
uses: https://git.hmtsai.cn/actions/cache@v4
id: cache-node
env:
cache-name: cache-node
with:
key: ${{ runner.os }}-node
path: |
/node
- name: Prepare node
if: ${{ steps.cache-node.outputs.cache-hit != 'true' }}
run: |
git clone https://git.hmtsai.cn/cxykevin/study-area-home-action-deps
mv study-area-home-action-deps/node-$(uname -m).tar.xz study-area-home-action-deps/node.tar.xz
tar xvJf study-area-home-action-deps/node.tar.xz
mv node-*-linux-* /node
export PATH=/node/bin:$PATH
echo $PATH
- name: Get Hash
id: npm_hash
run: echo "::set-output name=npmhash::$(sha256sum ./package.json | cut -d ' ' -f 1)"
- name: Cache Node Moudles
id: cache-node-moudles
uses: https://git.hmtsai.cn/actions/cache@v4
env:
cache-name: cache-node-moudles
with:
key: ${{ runner.os }}-node_moudles-${{ steps.npm_hash.outputs.npmhash }}
path: |
node_modules
- name: Check node
run: |
node -v
npm -v
- name: Prepare NPM source
run: |
export PATH=/node/bin:$PATH
npm config set registry https://registry.npmmirror.com
- name: npm install
if: ${{ steps.cache-node-moudles.outputs.cache-hit != 'true' }}
run: |
export PATH=/node/bin:$PATH
npm install
- name: Build book
run: |
export PATH=/node/bin:$PATH
npm run build
- name: Check book
run: |
echo "# ls dist"
ls dist
- name: Upload
run: lftp ${{ secrets.FTP_IP }} -u ${{ secrets.FTP_USER }},${{ secrets.FTP_PASSWD }} -e "mirror -R dist dist"