Tự động deploy Laravel project với Github Action

Posted by Giap Nguyen on 2022-03-11

Cài đặt Github action tự động deploy dự án Laravel

  • Tạo file .github/workflows/deploy.yml trong dự án Laravel của bạn.
  • Sao chép và dán nội dung sau vào file deploy.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
name: Deploy

on:
push:
branches: [master]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
extensions: mbstring, pdo_mysql
- name: Install dependencies
run: composer install --no-dev --prefer-dist --optimize-autoloader
- name: Build assets
run: php artisan mix --production
- name: Deploy to server
uses: easingthemes/[email protected]
env:
SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete --exclude-from=.gitignore -e ssh"
with:
server: ${{ secrets.SERVER }}
username: ${{ secrets.SERVER_USERNAME }}
local_path: './'
remote_path: ${{ secrets.SERVER_PATH }}
  • Tạo một SSH key pair để sử dụng cho việc truy cập vào server của bạn. Lưu ý rằng SSH key pair này phải được lưu trữ trong GitHub Secrets để tránh bị lộ thông tin. Bạn có thể tạo SSH key pair bằng cách chạy lệnh ssh-keygen trong terminal và sau đó sao chép nội dung của file ~/.ssh/id_rsa vào GitHub Secrets với tên SERVER_SSH_PRIVATE_KEY.
  • Tạo các secrets khác cho các thông tin như địa chỉ IP hoặc tên miền của server (SERVER), tên người dùng SSH (SERVER_USERNAME) và đường dẫn đến thư mục trên server mà bạn muốn deploy dự án Laravel của mình (SERVER_PATH).
  • Đăng nhập vào tài khoản GitHub của bạn và truy cập vào dự án Laravel của bạn. Nhấp vào tab “Settings” và chọn “Secrets” từ menu bên trái. Thêm các secrets được tạo ở bước trước vào danh sách secrets.
  • Commit và push các thay đổi của bạn lên nhánh master để trigger việc deploy tự động của GitHub Action.

Khi bạn push các thay đổi lên nhánh master, GitHub Action sẽ tự động checkout code mới nhất của dự án của bạn, cài đặt PHP và các dependencies cần thiết, build assets, và sau đó deploy dự án của bạn lên server được chỉ định. Bạn có thể tùy chỉnh các bước này cho phù hợp với dự án của bạn.

Good luck ^^