forked from study-area-cn/study-area-cn.old
141 lines
5.5 KiB
YAML
141 lines
5.5 KiB
YAML
name: Build and Publish
|
|
run-name: Build and Publish book (${{ gitea.actor }})
|
|
on: [push]
|
|
|
|
jobs:
|
|
Build:
|
|
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: Checkout
|
|
uses: https://git.hmtsai.cn/actions/checkout@v4
|
|
- name: Get Hash
|
|
id: src_hash
|
|
run: echo "::set-output name=src_hash::$(if [[ $(find src -type f -exec sha256sum {} \; | sha256sum | cut -d ' ' -f 1) = $(cat hash.txt) ]]; then echo run; else echo next; fi)"
|
|
- name: Cache Node
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
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.src_hash.outputs.src_hash != 'run' && 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 npm root
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
id: npm_root
|
|
run: echo "::set-output name=npmroot::$(npm root -g)"
|
|
- name: Cache Node Moudles
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
id: cache-node-moudles
|
|
uses: https://git.hmtsai.cn/actions/cache@v4
|
|
env:
|
|
cache-name: cache-node-moudles
|
|
with:
|
|
key: ${{ runner.os }}-node_moudles
|
|
path: |
|
|
${{ steps.npm_root.outputs.npmroot }}
|
|
- name: Check node
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
run: |
|
|
node -v
|
|
npm -v
|
|
- name: Prepare NPM source
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
run: |
|
|
export PATH=/node/bin:$PATH
|
|
npm config set registry https://registry.npmmirror.com
|
|
- name: npm install
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' && steps.cache-node-moudles.outputs.cache-hit != 'true' }}
|
|
run: |
|
|
export PATH=/node/bin:$PATH
|
|
npm install -g @lint-md/cli
|
|
- name: Format
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
run: |
|
|
export PATH=/node/bin:$PATH
|
|
lint-md src/**/* --threads=8 --fix --suppress-warnings
|
|
- name: Set hash cache
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
run: |
|
|
echo "$(find src -type f -exec sha256sum {} \; | sha256sum | cut -d ' ' -f 1)" > hash.txt
|
|
- name: Commit files
|
|
if: ${{ steps.src_hash.outputs.src_hash != 'run' }}
|
|
run: |
|
|
git config --global user.name "studyareacn-format-bot"
|
|
git config --global user.email "studyareacn-format@noreply.localhost"
|
|
git remote set-url origin https://${{ secrets.GIT_USER }}:${{ secrets.GIT_PASSWD }}@git.hmtsai.cn/study-area-cn/study-area-cn
|
|
git add .
|
|
git commit -m "Auto format"
|
|
echo "__import__(\"os\").system(\"sh -c \\\"git push\\\"\")" > ezpush.py && python3 ezpush.py
|
|
- name: "-------------"
|
|
id: src_hash
|
|
run: echo "-------------"
|
|
- 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: Cache mdbook
|
|
uses: https://git.hmtsai.cn/actions/cache@v4
|
|
id: cache-mdbook
|
|
env:
|
|
cache-name: cache-mdbook
|
|
with:
|
|
key: ${{ runner.os }}-mdbook
|
|
path: |
|
|
study-area-action-deps
|
|
- name: Get file
|
|
if: ${{ steps.cache-mdbook.outputs.cache-hit != 'true' }}
|
|
run: |
|
|
git clone https://git.hmtsai.cn/cxykevin/study-area-action-deps
|
|
echo "Check..."
|
|
ls study-area-action-deps
|
|
- name: Add permission
|
|
run: chmod +x study-area-action-deps/mdbook-linux-$(uname -m)
|
|
- name: Build mdbook
|
|
run: study-area-action-deps/mdbook-linux-$(uname -m) build
|
|
- name: Cache mapbook
|
|
uses: https://git.hmtsai.cn/actions/cache@v4
|
|
id: cache-mapbook
|
|
env:
|
|
cache-name: cache-mapbook
|
|
with:
|
|
key: mapbook
|
|
path: |
|
|
mapbook
|
|
- name: Get mapbook
|
|
if: ${{ steps.cache-mapbook.outputs.cache-hit != 'true' }}
|
|
run: |
|
|
git clone https://git.hmtsai.cn/cxykevin/mapbook
|
|
echo "Check..."
|
|
ls mapbook
|
|
- name: Build sitemap
|
|
run: |
|
|
python3 mapbook/build.py
|
|
- name: Check book
|
|
run: ls book
|
|
- name: Upload
|
|
run: |
|
|
mv book index
|
|
lftp ${{ secrets.FTP_SITE }} -u ${{ secrets.FTP_USERNAME }},${{ secrets.FTP_PWD }} -e "mirror -R index index"
|