Files
ax_hub_mcp_tool/.gitea/workflows/deploy.yml
jade 7b8c38489e
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 1s
ci: Add Node.js installation step to Gitea Actions deploy workflow
2026-07-27 13:07:29 +09:00

66 lines
2.2 KiB
YAML

name: Deploy to OCIWP
on:
push:
branches:
- main
- master
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Install Node.js (Prerequisite for Github Actions)
run: |
if ! command -v node &> /dev/null; then
echo "Node.js not found. Installing Node.js 20..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
fi
- name: Checkout Code
uses: actions/checkout@v4
- name: Sync Code to Host Volume
run: |
echo "Copying latest code to /app (Host Volume)..."
cp -a . /app/
- name: Deploy Task on Host
run: |
echo "Starting Standard CI/CD Deploy pipeline..."
# 1. gradle 공식 이미지로 바로 컴파일 빌드!
docker run --rm \
-v /home/ubuntu/app/ax_hub_mcp_tool:/app \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/ubuntu/.gradle:/home/gradle/.gradle \
-w /app \
gradle:8-jdk21 \
./gradlew bootJar -x test
# 2. 빌드 결과 plain jar 아카이브 정리
find /app -name "*-plain.jar" -delete
# 3. 좀비 컨테이너 청소 (현재 우리가 쓸 포트를 점유 중인 옛날 컨테이너들만 정확히 색출해서 사살)
echo "Finding and killing zombie containers holding our ports..."
for port in 6379 8080 8089 8281 8282 8283 8284 8285 8288; do
cid=$(docker ps -q --filter "publish=$port")
if [ ! -z "$cid" ]; then
echo "Force killing container $cid using port $port"
docker rm -f $cid
fi
done
# 4. 마운트된 /app 디렉토리로 이동하여 호스트의 도커 컴포즈 제어!
cd /app
docker system prune -f
ACTIVE_PROFILE=dev docker compose up -d --build --remove-orphans gateway redis mci-mock dozzle tool-sms tool-oth
# 5. 배포 후 대롱대롱 매달려 있는 가비지 이미지 자동 소거 청소!
docker image prune -f
echo "CI/CD Deploy Success!"