48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
name: Deploy Slides
|
|
run-name: ${{ gitea.actor }} deployed slides
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: aliyun
|
|
container: node:22-alpine
|
|
steps:
|
|
- name: Install tools
|
|
run: |
|
|
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|
apk add --no-cache docker-cli git
|
|
|
|
- name: Checkout
|
|
uses: http://47.121.181.112:3000/wonder/checkout@v4
|
|
with:
|
|
github-server-url: http://47.121.181.112:3000
|
|
|
|
- name: Install pnpm
|
|
run: npm install -g pnpm
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
echo "registry=https://registry.npmmirror.com" > .npmrc
|
|
pnpm install --frozen-lockfile
|
|
|
|
- name: Build all decks
|
|
run: pnpm run build
|
|
|
|
- name: Deploy to nginx
|
|
run: |
|
|
if docker inspect slides-nginx >/dev/null 2>&1; then
|
|
docker cp dist/. slides-nginx:/usr/share/nginx/html/
|
|
docker exec slides-nginx nginx -s reload
|
|
else
|
|
docker run -d \
|
|
--name slides-nginx \
|
|
--restart unless-stopped \
|
|
-p 8080:80 \
|
|
nginx:alpine
|
|
docker cp nginx.conf slides-nginx:/etc/nginx/conf.d/default.conf
|
|
docker cp dist/. slides-nginx:/usr/share/nginx/html/
|
|
fi
|