Cũng giống với Jenkins, Github Action(mình viết tắt là GA
nhá) là một công cụ CI/CD rất là tuyệt vời của Github, đặc biệt là nó miễn phí
tuy có những hạn chế nhưng nó gần như là quá đủ với đa số. Vậy nếu bạn có 1 con
server bất kì mà muốn thì nghịch thì có thể thay nó cho runner mặc định của GA.
1. CHUẨN BỊ
- Tài
khoản github
- 1 con
server (window, macOs,linux) (nếu bạn chạy sefl-hosted thì hãy cài sẵn
docker lên con server luôn nhé, bạn dùng mặc định của GA thì khỏi cần gì cả!)
- 1 repo
mẫu (mình dùng project .net làm ví dụ)
2. TẠO RUNNER
- Tạo và
liên kết server của bạn với GA (các bạn có thể bỏ qua bước tạo Runner này
nếu chỉ dụng mặc định)
- Đầu tiên hãy vào repo trên github của bạn chọn qua Settings -> Actions -> Runners -> New self-hosted runner (hình 1)
- Chọn
Runner image và Architecture của image (hình 2). Hãy giữ nguyên màn hình
đó mà mở server của bạn lên ở đây mình có tạo 1 con EC2 chạy ubuntu 22.04.
(mình đã cài sẵn docker)
- Copy từng
lệnh từ trên xuống paste vào server của bạn (hình 3)
- Mình sẽ
không run trực tiếp ./run.sh mà sẽ start nó dưới dạng
service trong server (hình 4)
- Quay lại
github bạn sẽ thấy runner mà mình đã tạo thành công (hình 5)
3. TẠO WORKFLOW VỚI 1 JOB "BUILD"
- Mở
source code của bạn lên và tạo folder .github/workflows và tạo 1 file
deploy.yml để soạn script sau đó commit code ròi push lên github (hình 6)
- Mở tab
Action lên vào xem commit của bạn mới push lên đã được trigger và run hay
chưa nếu tích xanh là đã ngon cơm (hình 7)
4. CUSTOME WORKFLOW JOB "DEPLOY"
- Quay lại file deploy.yml thêm 1 job tên là deploy. Ở job này mình sẽ thực hiện build và push image lên DockerHub 1 cách tự động (hình 8)
Giải thích:
- username: ${{ secrets.DOCKER_USERNAME }} // tài khoản Dockerhub
- password: ${{ secrets.DOCKER_PASSWORD }} // mật khẩu
Đây là 2 secrets được lưu trong github nếu chưa có hãy tạo mới
2 secret DOCKER_USERNAME, DOCKER_PASSWORD (hình 9, 10)
- Commit
code ròi push lên để GA thực hiện các jobs trong workflow (hình 11). Xanh
như hình là workflow của bạn đã thực hiện ngon lành
- Giờ
hãy qua Dockerhub xem image đã được push lên hay chưa (hình 12). vậy là
image cũng đã được push lên Dockerhub ngon cơm. QUÁ ĐÃ !!
=> Mình đã giới thiệu cho các bạn về Github
Action, theo mình thì cái GA này rất là tiện, dễ học và có thể run được ngay
không cần config gì nhiều. Tiện lợi hơn so với jenkins nếu bạn sử dụng Github để
quản lý source code.
Cảm ơn các bạn đọc, Hy vọng với những chia sẻ của mình sẽ
giúp các bạn đọc trong quá trình học tập. Nếu có thắc mắc gì về nội dung bài viết,
đừng ngần ngại comment bên dưới để mình trao đổi thêm nhé.
Chúc các bạn thành công!











