test CI/CD
This commit is contained in:
parent
fa9567c9d9
commit
b4331b0fbd
120
CI-CD-PLAN.md
120
CI-CD-PLAN.md
|
|
@ -1,120 +0,0 @@
|
|||
# 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 <runner-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 = <dockerhub_username>
|
||||
- REGISTRY_PASSWORD = <dockerhub_access_token>
|
||||
- IMAGE_NAME = <dockerhub_username>/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-<commit SHA>`
|
||||
|
||||
## 12) Buoc tiep theo
|
||||
1) Them secrets tren Gitea
|
||||
2) Push len `main` de trigger deploy
|
||||
Loading…
Reference in New Issue
Block a user