添加自定义登录
This commit is contained in:
+27
-25
@@ -1,4 +1,11 @@
|
||||
name: deploy-cassso-service
|
||||
name: build-push
|
||||
|
||||
# CAS 接入 projman 部署平台后:本 workflow 只负责 构建镜像 + 推 Nexus + 通知 projman 建档,
|
||||
# 部署由运维在 projman「后端发布」tab 手动选 tag 执行(App.deployMode=manual)。
|
||||
# 触发:push 到 main / 手动 Run workflow
|
||||
# 依赖仓库 Secrets:NEXUS_USER / NEXUS_PASSWORD(docker-hosted 推送)/ DEPLOY_TOKEN(webhook 鉴权)/ WEBHOOK_URL
|
||||
# 镜像名与 projman 派生规则一致:应用名 cassso → 镜像 cassso-service(NexusClient.imageRepo = 应用名小写 + "-service")
|
||||
# 注意:nexus:8083 为 HTTP 仓库,宿主 daemon 需配置 insecure-registries 才能推送(projman 一直在拉,通常已配)
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -6,40 +13,35 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-deploy:
|
||||
build-push:
|
||||
runs-on: ubuntu-latest
|
||||
# docker:24 自带 docker CLI;宿主 docker.sock 默认挂入 job 容器。
|
||||
# docker:24 自带 docker CLI;宿主 docker.sock 默认挂入 job 容器
|
||||
container:
|
||||
image: docker:24
|
||||
steps:
|
||||
- name: Install git (alpine)
|
||||
run: apk add --no-cache git
|
||||
- name: Install git / curl (alpine)
|
||||
run: apk add --no-cache git curl
|
||||
|
||||
- name: Checkout (manual, internal Gitea)
|
||||
# cas.war (174MB) 已作为普通 blob 入库(服务端未启用 LFS)
|
||||
# cas.war (约 170MB) 已作为普通 blob 入库(服务端未启用 LFS)
|
||||
run: |
|
||||
git clone --depth 1 --branch main http://192.168.10.160:3000/${GITHUB_REPOSITORY}.git /tmp/src
|
||||
COMMIT_MSG=$(git -C /tmp/src log -1 --pretty=%s | tr '\n' ' ' | sed 's/["\\]/ /g' | cut -c1-200)
|
||||
echo "COMMIT_MSG=${COMMIT_MSG}" >> "$GITHUB_ENV"
|
||||
cp -a /tmp/src/. .
|
||||
rm -rf .git .gitea
|
||||
rm -rf /tmp/src
|
||||
rm -rf .git .gitea /tmp/src
|
||||
|
||||
- name: Build image (copies docker/cas.war) on host daemon
|
||||
# 经由挂载的 docker.sock 在宿主守护进程上构建,镜像直接落在宿主本地
|
||||
run: docker build -f docker/Dockerfile -t cassso-service:latest .
|
||||
- name: Build image (copies docker/cas.war, host daemon)
|
||||
run: docker build -f docker/Dockerfile -t nexus:8083/docker-hosted/cassso-service:${GITHUB_SHA:0:8} .
|
||||
|
||||
- name: Deploy on host (infra-infra-net, CAS 端口 8443)
|
||||
# 镜像已在宿主本地,直接运行,无需推送到 nexus(nexus docker 仓库为 HTTP,需 daemon insecure-registries 才能推送)
|
||||
# Nacos 环境变量:NacosEnvironmentPostProcessor 启动阶段据此从 Nacos 原生拉取
|
||||
# common.yaml (DEFAULT_GROUP) + cas.yaml (CAS group),namespace=prod。
|
||||
# 不传 NACOS_NAMESPACE 会默认连 dev(dev 命名空间无配置),登录必失败——必须显式传 prod。
|
||||
- name: Push Nexus docker-hosted
|
||||
run: |
|
||||
docker rm -f cas-sso 2>/dev/null || true
|
||||
docker run -d --name cas-sso --network infra-infra-net -p 8443:8443 --restart unless-stopped \
|
||||
-e NACOS_ADDR=nacos:8848 \
|
||||
-e NACOS_NAMESPACE=prod \
|
||||
-e NACOS_USER=yh-reader \
|
||||
-e NACOS_PASS=123456 \
|
||||
cassso-service:latest
|
||||
echo "${{ secrets.NEXUS_PASSWORD }}" | docker login nexus:8083 -u "${{ secrets.NEXUS_USER }}" --password-stdin
|
||||
docker push nexus:8083/docker-hosted/cassso-service:${GITHUB_SHA:0:8}
|
||||
|
||||
- name: Done
|
||||
run: 'echo "CasSsoService deployed -> https://192.168.10.160:8443/login"'
|
||||
- name: Notify projman (release pending, manual deploy)
|
||||
run: |
|
||||
curl -sS -X POST "${{ secrets.WEBHOOK_URL }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Deploy-Token: ${{ secrets.DEPLOY_TOKEN }}" \
|
||||
-d "{\"app\":\"cassso\",\"tag\":\"${GITHUB_SHA:0:8}\",\"sha\":\"${GITHUB_SHA}\",\"message\":\"${COMMIT_MSG}\"}"
|
||||
|
||||
Reference in New Issue
Block a user