Quay lại

Cấu trúc cơ bản trong workflow GitHub Actions Chuyên mục Devops    2024-02-05    32 Lượt xem    14 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cấu trúc cơ bản trong workflow GitHub Actions

File cấu hình GitHub Actions thường được gọi là file workflow và có định dạng YAML. Một workflow được sử dụng để định nghĩa loạt các bước (steps) cụ thể cần thực thi khi có các sự kiện nhất định xảy ra trên repository GitHub của bạn, chẳng hạn như một commit mới được đẩy lên hay một pull request được mở.

Dưới đây là một cấu trúc cơ bản của một file cấu hình GitHub Actions:

name: Build and Deploy

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        
      # Add steps here for building your project
      
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    
    needs: build
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    
    steps:
      - name: Deploy to production
        uses: actions/aws/cli@v2
        with:
          args: s3 sync . s3://your-bucket-name
Một số điểm cần lưu ý trong cấu trúc này:
  1. name: Tên của workflow, hiển thị trên giao diện GitHub Actions.
  2. on: Xác định các sự kiện GitHub mà workflow này sẽ phản ứng và thực thi các bước. Trong ví dụ này, workflow sẽ chạy khi có push vào branch main hoặc khi có pull request vào branch main.
  3. jobs: Mỗi workflow có thể chứa một hoặc nhiều job. Trong ví dụ này, có hai job: "build" và "deploy".
  4. Mỗi job có một loạt các bước (steps) để thực thi. Các bước có thể là các lệnh shell, script, hoặc sử dụng các action có sẵn từ thư viện của GitHub.
  5. Trong ví dụ này, job "deploy" phụ thuộc vào job "build" (do "needs: build") và chỉ chạy khi có sự kiện push vào branch main.
  6. Trong "steps",
    • "uses" được sử dụng để sử dụng một action có sẵn từ thư viện của GitHub
    • "with" được sử dụng để truyền tham số cho action đó.

File cấu hình GitHub Actions sẽ thực thi các bước được định nghĩa mỗi khi có sự kiện mà nó đang theo dõi xảy ra.

Tổng hợp

Dưới đây là một số điểm cụ thể hơn về cấu trúc của một workflow trong GitHub Actions:

  1. Sự kiện (on):

    • Bạn có thể xác định nhiều loại sự kiện mà workflow sẽ phản ứng, bao gồm push, pull request, release, schedule, và các sự kiện tùy chỉnh khác.
    • Bạn có thể chỉ định các điều kiện cụ thể cho các nhánh và thẻ mà workflow sẽ phản ứng.
  2. Jobs:

    • Mỗi workflow có thể chứa một hoặc nhiều job, mỗi job chứa một loạt các bước (steps).
    • Các job trong cùng một workflow có thể chạy song song hoặc tuần tự, phụ thuộc vào sự cấu hình của bạn.
  3. Steps:

    • Các bước (steps) trong một job là các hành động cụ thể mà bạn muốn thực hiện trong quá trình CI/CD của bạn.
    • Mỗi bước có thể là một action được định nghĩa sẵn (được cung cấp bởi GitHub hoặc cộng đồng), hoặc là một lệnh cụ thể mà bạn muốn thực thi.
  4. Cài đặt môi trường (runs-on):

    • Bạn có thể xác định hệ điều hành và môi trường mà các job sẽ chạy trên, chẳng hạn như Ubuntu, Windows, hoặc MacOS.
    • Điều này cho phép bạn kiểm tra ứng dụng của mình trên nhiều hệ điều hành và môi trường khác nhau.
  5. Sử dụng các action có sẵn:

    • GitHub cung cấp một thư viện lớn các action có sẵn để giúp bạn thực hiện các công việc cụ thể trong quy trình CI/CD của bạn.
    • Bạn có thể sử dụng các action này bằng cách chỉ định chúng trong phần steps của workflow của bạn.
  6. Truyền tham số cho các action:

    • Bạn có thể truyền tham số cho các action bằng cách sử dụng cú pháp YAML để chỉ định các giá trị trong phần with.
    • Các tham số này sẽ được sử dụng bởi các action để thực hiện các hành động cụ thể.
  7. Xác định phụ thuộc giữa các job (needs):

    • Bạn có thể xác định phụ thuộc giữa các job bằng cách sử dụng khối needs. Điều này cho phép bạn chỉ định rằng một job nào đó chỉ có thể chạy sau khi một số job khác đã hoàn thành.
  8. Điều kiện thực thi (if):

    • Bạn có thể chỉ định điều kiện để xác định xem một job hoặc một bước có nên được thực thi hay không, dựa trên một số điều kiện cụ thể.

Bằng cách kết hợp các yếu tố trên, bạn có thể xây dựng các workflow phức tạp và mạnh mẽ trong GitHub Actions để tự động hóa quy trình phát triển và triển khai của mình.

Ví dụ

Dưới đây là một cấu trúc cơ bản và chi tiết của một workflow trong GitHub Actions:

name: Build and Test

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        
      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '7.4'
          extensions: mbstring, intl, pdo_mysql
      
      - name: Install dependencies
        run: composer install --no-interaction --prefer-dist

      - name: Run PHPUnit tests
        run: vendor/bin/phpunit --configuration phpunit.xml

      - name: Upload test coverage
        uses: actions/upload-artifact@v2
        with:
          name: coverage
          path: coverage

Đây là một workflow cơ bản để xây dựng và kiểm thử một ứng dụng PHP. Hãy đi vào từng phần:

  1. name: Đây là tên của workflow, hiển thị trên giao diện GitHub Actions.

  2. on: Xác định các sự kiện GitHub mà workflow này sẽ phản ứng và thực thi. Trong ví dụ này, workflow sẽ chạy khi có sự kiện push vào branch main hoặc khi có pull request vào branch main.

  3. jobs: Mỗi workflow có thể chứa một hoặc nhiều job. Trong ví dụ này, chỉ có một job được gọi là "build".

  4. build: Định nghĩa một job có tên là "Build". Trong job này:

    • runs-on: Xác định hệ điều hành mà job sẽ chạy, ở đây là Ubuntu.
    • steps: Là danh sách các bước mà job sẽ thực thi. Mỗi bước thực hiện một hoạt động cụ thể.
  5. steps: Danh sách các bước để thực thi trong job "Build". Mỗi bước có thể sử dụng một action có sẵn hoặc chạy một lệnh cụ thể.

    • Bước 1: Checkout code từ repository sử dụng action actions/checkout@v2.
    • Bước 2: Cài đặt PHP và các extension cần thiết sử dụng action shivammathur/setup-php@v2.
    • Bước 3: Cài đặt các phụ thuộc PHP bằng Composer.
    • Bước 4: Chạy các bài kiểm thử PHPUnit.
    • Bước 5: Tải lên báo cáo về coverage sử dụng action actions/upload-artifact@v2.

Cấu trúc cơ bản này mô tả một workflow đơn giản để xây dựng và kiểm thử một ứng dụng PHP trên GitHub Actions. Bạn có thể tùy chỉnh và mở rộng workflow này tùy theo nhu cầu cụ thể của dự án của bạn.

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday