Hướng dẫn tối ưu hóa triển khai tự động RSS-Bridge: Cấu hình dòng CI/CD

Giới thiệu về RSS-Bridge và triển khai tự động

RSS-Bridge là ứng dụng PHP giúp tạo nguồn RSS cho các trang web không hỗ trợ nguyên bản. Triển khai tự động giúp duy trì tính sẵn sàng của dịch vụ, giảm thiểu công việc bảo trì thủ công.

Lợi ích của triển khai tự động

  • Tích hợp liên tục: Tự động xây dựng và kiểm thử khi có thay đổi mã nguồn
  • Triển khai nhanh chóng: Cập nhật phiên bản mới chỉ bằng một lệnh
  • Đảm bảo chất lượng: Kiểm thi nghiệm trước khi triển khai
  • Tính nhất quán môi trường: Đồng bộ cấu hình giữa các môi trường phát triển, kiểm thử và sản phẩm

Cấu hình CI/CD với GitHub Actions

name: Trien khai RSS-Bridge

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Cài đặt PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: '8.2'
    - name: Kiểm tra composer.json
      run: composer validate
    - name: Chạy kiểm thử
      run: ./vendor/bin/phpunit

Tự động hóa với Docker

# Triển khai container
docker-compose up --build -d

Các tập tin cấu hình chính

  • Dockerfile: Định nghĩa quy trình xây dựng image
  • docker-compose.yml: Quản lý các dịch vụ phụ thuộc
  • docker-entrypoint.sh: Khởi động và thiết lập ban đầu
  • config.default.ini.php: Mẫu cấu hình mặc định
  • composer.json: Quản lý thư viện PHP

Tối ưu hóa quy trình CI

- name: Chạy kiểm thử đơn vị
  run: ./vendor/bin/phpunit --testdox

- name: Kiểm tra code
  run: ./vendor/bin/phpcs --standard=phpcs.xml

Chiến lược lưu trữ cache

- name: Lưu cache composer
  uses: actions/cache@v3
  with:
    path: vendor
    key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}

Kỹ thuật triển khai không gián đoạn

- name: Kiểm tra trạng thái
  run: |
    until curl -f http://localhost:3000/; do
      sleep 5
    done

Quản lý biến môi trường

env:
  BRIDGE_CONFIG: ${{ secrets.BRIDGE_CONFIG }}

Các vấn đề thường gặp

  • Kiểm tra log container: docker logs rss-bridge
  • Xác minh config: config.ini.php
  • Kiểm tra phụ thuộc: composer.json

Tối ưu cho nhiều môi trường

- name: Triển khai staging
  if: github.ref == 'refs/heads/develop'
  run: ./deploy-staging.sh

- name: Triển khai sản phẩm
  if: github.ref == 'refs/heads/main'
  run: ./deploy-production.sh

Tải xuống miễn phí dự án tại: https://gitcode.com/gh_mirrors/rs/rss-bridge

Thẻ: CI/CD php docker GitHub Actions PHPUnit

Đăng vào ngày 17 tháng 05 lúc 20:41