fix CD part 7
All checks were successful
CI / build-test (push) Successful in 45s
Deploy Staging (Docker) / deploy (push) Successful in 32s

This commit is contained in:
Do Manh Phuong 2026-05-10 23:43:58 +07:00
parent ee462d5544
commit 6714ef5011

View File

@ -11,49 +11,25 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Build & Save Image - name: Build Image
run: | run: |
IMAGE="${{ secrets.IMAGE_NAME }}" IMAGE="${{ secrets.IMAGE_NAME }}"
if [ -z "$IMAGE" ]; then IMAGE="ttmt-frontend"; fi if [ -z "$IMAGE" ]; then IMAGE="ttmt-frontend"; fi
IMAGE=$(echo "$IMAGE" | tr '[:upper:]' '[:lower:]') IMAGE=$(echo "$IMAGE" | tr '[:upper:]' '[:lower:]')
docker build --build-arg NODE_VERSION=22.14.0 -t $IMAGE:staging-${{ github.sha }} . docker build --build-arg NODE_VERSION=22.14.0 -t $IMAGE:staging-${{ github.sha }} .
docker save -o ./ttmt-frontend.tar $IMAGE:staging-${{ github.sha }}
- name: Upload Image Tar - name: Deploy local (docker compose)
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_PORT: ${{ secrets.SSH_PORT }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: | run: |
pwd IMAGE="${{ secrets.IMAGE_NAME }}"
ls -lah if [ -z "$IMAGE" ]; then IMAGE="ttmt-frontend"; fi
ls -lah ./ttmt-frontend.tar IMAGE=$(echo "$IMAGE" | tr '[:upper:]' '[:lower:]')
mkdir -p ~/.ssh COMPOSE_FILE=/home/compmanage/docker-compose.yml
printf '%s' "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa OVERRIDE_FILE=/tmp/ttmt-frontend.override.yml
chmod 600 ~/.ssh/id_rsa cat > $OVERRIDE_FILE <<EOF
SSH_PORT="${SSH_PORT:-22}" services:
scp -v -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P "$SSH_PORT" ./ttmt-frontend.tar "$SSH_USER@$SSH_HOST:/tmp/ttmt-frontend.tar" frontend:
image: $IMAGE:staging-${{ github.sha }}
- name: Deploy on target (docker compose) EOF
uses: appleboy/ssh-action@v1.0.3 docker rm -f ttmt-frontend || true
with: docker compose -f $COMPOSE_FILE -f $OVERRIDE_FILE up -d --no-deps --force-recreate frontend
host: ${{ secrets.SSH_HOST }} rm -f $OVERRIDE_FILE
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.SSH_PORT }}
script: |
IMAGE="${{ secrets.IMAGE_NAME }}"
if [ -z "$IMAGE" ]; then IMAGE="ttmt-frontend"; fi
IMAGE=$(echo "$IMAGE" | tr '[:upper:]' '[:lower:]')
COMPOSE_FILE=/home/compmanage/docker-compose.yml
OVERRIDE_FILE=/tmp/ttmt-frontend.override.yml
docker load -i /tmp/ttmt-frontend.tar
cat > $OVERRIDE_FILE <<EOF
services:
frontend:
image: $IMAGE:staging-${{ github.sha }}
EOF
docker rm -f ttmt-frontend || true
docker compose -f $COMPOSE_FILE -f $OVERRIDE_FILE up -d --no-deps --force-recreate frontend
rm -f /tmp/ttmt-frontend.tar $OVERRIDE_FILE