Tự động Build & Deploy Nextjs với Azure Pipelines qua SSH

Đăng ngày 31 Oct 2020 13:32

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.

azure pipelines ssh

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: false

5. 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 azure pipelines trigger

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.