From 2fcffbceac914f4d500757440ca18a1958d06a8e Mon Sep 17 00:00:00 2001 From: phuongdm Date: Sun, 10 May 2026 22:05:15 +0700 Subject: [PATCH] fix UI and add CI/CD 3 --- .gitea/workflows/ci.yml | 2 +- CI-CD-PLAN.md | 120 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 CI-CD-PLAN.md diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 78d8074..2fde7ce 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: run: npm ci - name: Test - run: npm run test + run: npm run test -- --passWithNoTests - name: Build run: npm run build diff --git a/CI-CD-PLAN.md b/CI-CD-PLAN.md new file mode 100644 index 0000000..b4db5ff --- /dev/null +++ b/CI-CD-PLAN.md @@ -0,0 +1,120 @@ +# Ke hoach CI/CD cho frontend (Gitea) + +## 1) Tong quan +Ke hoach nay thiet lap: +- CI: build va test moi lan push/PR +- CD: deploy Docker tu dong len staging + +## 2) Thong tin du an +- Build tool: Vite +- Script: + - test: `npm run test` + - build: `npm run build` +- Thu muc output: `dist` + +## 3) Quy uoc da chot +1) Cach deploy: Docker +2) Node version: 22.14.0 +3) Branch staging: `main` +4) Runner dat tren web server (deploy truc tiep, khong SSH) + +## 4) Dieu kien truoc +- Web server Ubuntu 22.04 co Docker +- Web server truy cap duoc: + - Gitea: http://203.171.20.94:3000 + - Docker Hub + +## 5) Cai dat act_runner tren web server (Ubuntu 22.04) +### 5.1 Dung user compmanage lam runner +```bash +sudo usermod -aG docker compmanage + +``` + +### 5.2 Tai act_runner +```bash +mkdir -p /home/compmanage/gitea-runner/bin +cd /home/compmanage/gitea-runner/bin +curl -L -o act_runner \ + https://dl.gitea.com/act_runner/0.2.10/act_runner-0.2.10-linux-amd64 +chmod +x act_runner +``` + +### 5.3 Lay token va dang ky runner +- Gitea Admin -> Actions -> Runners -> Create new runner +- Dang ky runner: +```bash +/home/compmanage/gitea-runner/bin/act_runner register \ + --instance http://203.171.20.94:3000 \ + --token \ + --name webserver-runner \ + --labels docker:docker://node:22.14.0 +``` + +### 5.4 Chay runner bang systemd +Tao file `/etc/systemd/system/act_runner.service`: +```ini +[Unit] +Description=Gitea Actions Runner +After=network.target + +[Service] +User=compmanage +Group=compmanage +ExecStart=/home/compmanage/gitea-runner/bin/act_runner daemon +WorkingDirectory=/home/compmanage/gitea-runner +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +``` + +Khoi dong: +```bash +sudo systemctl daemon-reload +sudo systemctl enable --now act_runner +sudo systemctl status act_runner +``` + +## 6) Secrets can tao trong Gitea +Vao repo -> Settings -> Actions -> Secrets, them cac key sau: +- REGISTRY_URL = docker.io +- REGISTRY_USER = +- REGISTRY_PASSWORD = +- IMAGE_NAME = /ttmt-frontend +- CONTAINER_NAME = ttmt-frontend +- HOST_PORT = 80 + +## 7) Workflow can co +- .gitea/workflows/ci.yml +- .gitea/workflows/deploy-staging.yml + +## 8) Luong CI (build + test) +- Trigger: push, pull_request +- Cac buoc: + 1) Checkout + 2) Setup Node 22.14.0 + 3) npm ci + 4) npm run test + 5) npm run build + 6) Upload dist artifact + +## 9) Luong CD (deploy Docker truc tiep) +- Trigger: push len branch `main` +- Cac buoc: + 1) Build image tu Dockerfile + 2) Push len Docker Hub + 3) Pull va restart container tren chinh web server + +## 10) Kiem tra sau khi deploy +- Gitea -> Actions: job thanh cong +- Tren server: `docker ps` thay container dang chay +- Truy cap web bang IP/port da map + +## 11) Rollback nhanh +- Deploy lai tag cu: `staging-` + +## 12) Buoc tiep theo +1) Them secrets tren Gitea +2) Push len `main` de trigger deploy