36 lines
1.2 KiB
YAML
36 lines
1.2 KiB
YAML
name: build-deploy
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Build & push muyu-portal
|
|
run: |
|
|
set -eo pipefail
|
|
REG=localhost:3000/kaezhou
|
|
TAG=dev-$(echo "${{ github.sha }}" | cut -c1-8)
|
|
workdir=$(mktemp -d)
|
|
git clone "http://kaezhou:${{ secrets.REGISTRY_TOKEN }}@localhost:3000/kaezhou/muyu-portal.git" "$workdir"
|
|
cd "$workdir"; git checkout "${{ github.sha }}"
|
|
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login localhost:3000 -u kaezhou --password-stdin
|
|
docker build --build-arg BASE_REGISTRY=docker.io/library \
|
|
-t "$REG/muyu-portal:$TAG" -t "$REG/muyu-portal:latest" .
|
|
docker push "$REG/muyu-portal:$TAG"
|
|
docker push "$REG/muyu-portal:latest"
|
|
rm -rf "$workdir"
|
|
echo "done: muyu-portal pushed at $TAG + latest"
|
|
|
|
- name: Deploy to dev-chiba
|
|
run: |
|
|
set -eo pipefail
|
|
app="$HOME/apps/muyu"
|
|
[ -d "$app" ] || { echo "!! $app 未部署,跳过"; exit 0; }
|
|
cd "$app"
|
|
docker compose pull portal
|
|
docker compose up -d portal
|
|
echo "deployed: portal"
|