ci.yml: 合并为单 deploy job,runs-on aliyun,apk 安装工具,docker compose up -d --build 直接构建 docker-compose.prod.yml: backend/worker/frontend 改用 build: 块,移除 nginx bind mount frontend/Dockerfile: 添加 ARG NGINX_CONFIG,生产构建传入 nginx.prod.conf 进镜像
54 lines
1.2 KiB
YAML
54 lines
1.2 KiB
YAML
name: CI/CD
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
|
|
concurrency:
|
|
group: deploy-${{ gitea.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
deploy:
|
|
name: Deploy
|
|
runs-on: aliyun
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
# -- Backend: vet + test --
|
|
- name: Install Go
|
|
run: |
|
|
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|
apk add --no-cache go
|
|
|
|
- name: Vet
|
|
working-directory: backend
|
|
run: go vet ./...
|
|
|
|
- name: Test
|
|
working-directory: backend
|
|
run: go test -race -count=1 ./...
|
|
|
|
# -- Frontend: install + build --
|
|
- name: Install Node
|
|
run: apk add --no-cache nodejs npm
|
|
|
|
- name: Build Frontend
|
|
working-directory: frontend
|
|
run: |
|
|
npm ci
|
|
npm run build
|
|
|
|
# -- Deploy --
|
|
- name: Deploy
|
|
run: |
|
|
cp docker-compose.prod.yml /opt/vloop/
|
|
cp -r backend /opt/vloop/
|
|
cp -r frontend /opt/vloop/
|
|
cd /opt/vloop
|
|
docker compose -f docker-compose.prod.yml up -d --build --remove-orphans
|
|
docker image prune -f
|