Trong bài viết trước, tôi đã hướng dẫn cách deploy NextJS lên CentOS. Trong bài viết này, tôi sẽ hướng dẫn bạn tự động build và deploy NextJS lên server bằng Azure Pipelines.
Bài viết sẽ không giới thiệu lại Azure Pipelines là gì hay cách tạo mới pipeline. Nếu bạn là người mới, bạn có thể tham khảo tại đây.
Thêm task SSH
Tôi thích dùng trình chỉnh sửa giao diện (classic editor) để tạo pipeline mà không cần dùng file YAML.
1. Thêm Service connection
Bấm vào nút "manage" (mục 1) để tạo kết nối SSH tới server.
2, 3. Thêm script
Chọn "Inline Script" (mục 2) và dán đoạn mã bên dưới vào:
cd /var/www/html/your-source-code
git checkout .
git pull
npm i
npm run build
pm2 restart yourappĐoạn lệnh trên có nghĩa là bạn trỏ tới thư mục chứa mã nguồn, reset lại các file có thay đổi. Sau đó pull về mã nguồn mới nhất. Cài đặt các gói npm và build mã nguồn.
Cuối cùng để PM2 cập nhật lại bản build vừa được tạo.
4. Ngăn chặn thất bại khi có STDERR (Prevent Fail on STDERR)
Nếu tùy chọn này được chọn, tiến trình build sẽ thất bại khi các lệnh hoặc script trên máy chủ từ xa ghi dữ liệu ra luồng STDERR.
File yaml hoàn chỉnh
- task: SSH@0
displayName: "Run shell inline on remote machine"
inputs:
sshEndpoint: "your-ssh-endpoint"
runOptions: inline
inline: |
cd /var/www/html/your-source-code
git checkout .
git pull
npm i
npm run build
pm2 restart yourapp
failOnStdErr: false5. Tự động chạy pipeline khi merge vào nhánh develop
Chọn tab Triggers.
Tích chọn Enable continuous integration. Nhập thông tin Branch specification: develop

Mẹo: Bạn có thể thêm task "Post to Slack" để gửi thông báo khi tiến trình build hoàn tất.