Hướng dẫn php actions composer - trình soạn thảo hành động php

Sử dụng CLI của nhà soạn nhạc trong các hành động GitHub của bạn.

Nhà soạn nhạc là một công cụ để quản lý phụ thuộc trong PHP. Nó cho phép bạn khai báo các thư viện mà dự án của bạn phụ thuộc vào và nó sẽ quản lý [cài đặt/cập nhật] cho bạn.

Nếu bạn đang chạy các bài kiểm tra như PHPUNIT, PHPSPEC hoặc Behat trong các hành động GitHub của bạn, rất có thể bạn sẽ cần cài đặt các phụ thuộc của dự án bằng trình soạn thảo.

Một kho lưu trữ ví dụ đã được tạo tại //github.com/php-actions/example-composer để chỉ ra cách sử dụng hành động này trong một dự án thực. Kho lưu trữ cũng phụ thuộc vào sự phụ thuộc riêng tư và sử dụng các khóa SSH để xác thực.

Cách sử dụng

Tạo cấu hình quy trình công việc GitHub của bạn trong .github/workflows/ci.yml hoặc tương tự.

name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: php-actions/composer@v6
    # ... then your own project steps ...

Số phiên bản

Hành động này được phát hành với các số phiên bản ngữ nghĩa, nhưng cũng được gắn thẻ để thẻ phát hành chính mới nhất luôn chỉ vào bản phát hành mới nhất trong phiên bản chính phù hợp.

Xin vui lòng sử dụng

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
0 để luôn chạy phiên bản V6 hoặc
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
1 mới nhất để chỉ định bản phát hành chính xác.

Chạy các lệnh tùy chỉnh

Theo mặc định, việc thêm

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
2 vào quy trình công việc của bạn sẽ chạy
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
3, vì
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
4 là tên lệnh mặc định. Lệnh cài đặt sẽ được cung cấp với một tập hợp các đối số mặc định [xem bên dưới].

Bạn có thể phát hành các lệnh tùy chỉnh bằng cách chuyển đầu vào

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
5, như vậy:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here

Thông qua các lập luận

Bất kỳ đối số tùy ý nào cũng có thể được chuyển cho nhà soạn nhạc bằng cách sử dụng đầu vào

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
6, tuy nhiên có một vài đầu vào được cấu hình trước để xử lý các đối số phổ biến. Tất cả các đầu vào là tùy chọn. Vui lòng xem danh sách sau:

  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            command: your-command-here
    7 - có nên hỏi bất kỳ câu hỏi tương tác nào không - có / không [mặc định không]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            command: your-command-here
    8 - Có cài đặt gói Dev - Có / Không [mặc định Có]yes]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            command: your-command-here
    9 - Có nên xuất trình tải xuống - Có / Không [mặc định Không]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    0 - Có nên đàn áp tất cả các tin nhắn - có / không [mặc định không]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            command: your-command-here
    6 - Đối số tùy chọn để vượt qua - Không có ràng buộc [trống mặc định]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    2 - Chỉ chạy lệnh mong muốn với Args này. Bỏ qua tất cả các đối số được cung cấp khác [mặc định trống]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    3 - Chọn phiên bản PHP bạn muốn sử dụng [7.1, 7.2, 7.3, 7.4 hoặc 8.0]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    4 - Chọn phiên bản nào của nhà soạn nhạc bạn muốn sử dụng [1.x, 2.x, 2.2.x, mới nhất]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    5 - Đặt giới hạn bộ nhớ của nhà soạn nhạc - [trống mặc định]

Ngoài ra còn có đầu vào SSH có sẵn:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
6,
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
7 và
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
8 được sử dụng để phụ thuộc vào kho lưu trữ riêng. Xem bên dưới để biết thêm thông tin về việc sử dụng.

Ví dụ về cấu hình YAML không muốn cài đặt các gói Dev và chuyển các đối số

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
9 và
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.1"
        version: 1
0:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs

Sử dụng các phiên bản khác nhau của PHP hoặc nhà soạn nhạc

Hành động này chạy trên một hình ảnh cơ sở tùy chỉnh, có sẵn tại //github.com/php-actions/php-build cho phép chuyển đổi phiên bản PHP hoạt động trên mạng và kho lưu trữ này cho phép chuyển đổi các phiên bản trình soạn thảo trên- con ruồi.

Sử dụng các đầu vào sau để chạy kết hợp phiên bản PHP/nhà soạn nhạc cụ thể:

  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    3 Phiên bản có sẵn:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    2,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    3,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    4,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    5,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    6,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    7 [mặc định:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    8 AKA:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    7]
  • jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v7
          with:
            dev: no
            args: --profile --ignore-platform-reqs
    4 Phiên bản có sẵn:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.4"
            php_extensions: redis exif
            version: 2.x
    
    1,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.4"
            php_extensions: redis exif
            version: 2.x
    
    2,
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.4"
            php_extensions: redis exif
            version: 2.x
    
    3 [mặc định:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.1"
            version: 1
    8 AKA:
    jobs:
      build:
    
        ...
    
        - name: Install dependencies
          uses: php-actions/composer@v6
          with:
            php_version: "7.4"
            php_extensions: redis exif
            version: 2.x
    
    2]

Đảm bảo đặt số phiên bản PHP vào báo giá, nếu không YAML sẽ diễn giải, ví dụ:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.1"
        version: 1
6 là
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.4"
        php_extensions: redis exif
        version: 2.x
7 có nghĩa là mới nhất 8.x, không phải 8.0.

Cấu hình ví dụ chạy trình soạn thảo phiên bản 1 trên Php phiên bản 7.1:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.1"
        version: 1

Bao gồm các phần mở rộng PHP

Hành động này bao gồm các tiện ích mở rộng mà nhà soạn nhạc đề xuất theo mặc định. Để bao gồm các tiện ích mở rộng PHP bổ sung trong các bước hành động của bạn, hãy đặt đầu vào

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.4"
        php_extensions: redis exif
        version: 2.x
8 với bất kỳ tên mở rộng được hỗ trợ nào được phân tách bằng không gian.

Cấu hình ví dụ chạy trình soạn thảo phiên bản 2 trên Php phiên bản 7.4 với phần mở rộng Redis và Exif được bật:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.4"
        php_extensions: redis exif
        version: 2.x

Bộ nhớ đệm phụ thuộc cho các bản dựng nhanh hơn

Các hành động của GitHub hỗ trợ bộ nhớ đệm phụ thuộc, cho phép tải xuống của nhà soạn nhạc được lưu trong bộ đệm giữa các quy trình công việc, miễn là tệp

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        php_version: "7.4"
        php_extensions: redis exif
        version: 2.x
9 không thay đổi. Điều này tạo ra các bản dựng nhanh hơn nhiều, vì lệnh
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        command: your-command-here
3 không phải tải xuống các tệp qua mạng nếu bộ đệm là hợp lệ.

Ví dụ quy trình làm việc [lấy từ //github.com/phpgt/database]:

name: CI

on: [push]

jobs:
  build:
    runs-on: [ubuntu-latest]
    
    steps:
    - uses: actions/checkout@v2

    - name: Cache Composer dependencies
      uses: actions/cache@v2
      with:
        path: /tmp/composer-cache
        key: ${{ runner.os }}-${{ hashFiles['**/composer.lock'] }}
      
    - uses: php-actions/composer@v6

    ...      

Trong ví dụ trên, "khóa" được chuyển cho hành động bộ đệm bao gồm một hàm băm của tệp composer.lock. Điều này có nghĩa là miễn là nội dung của Composer.lock không thay đổi giữa các quy trình công việc, thư mục bộ đệm của nhà soạn nhạc sẽ được duy trì giữa các quy trình công việc.

Cài đặt kho lưu trữ riêng

Để cài đặt từ kho lưu trữ riêng, xác thực SSH phải được sử dụng. Tạo một cặp khóa SSH cho mục đích này và thêm nó vào cấu hình kho lưu trữ riêng của bạn, thích hợp hơn chỉ với các đặc quyền chỉ đọc. Ví dụ, trên GitHub, điều này có thể được thực hiện bằng cách sử dụng các khóa triển khai.

Thêm cặp khóa vào dự án của bạn bằng cách sử dụng các bí mật của GitHub và chuyển chúng vào hành động

name: CI

on: [push]

jobs:
  build:
    runs-on: [ubuntu-latest]
    
    steps:
    - uses: actions/checkout@v2

    - name: Cache Composer dependencies
      uses: actions/cache@v2
      with:
        path: /tmp/composer-cache
        key: ${{ runner.os }}-${{ hashFiles['**/composer.lock'] }}
      
    - uses: php-actions/composer@v6

    ...      
1 bằng cách sử dụng các đầu vào
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
6 và
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
7. Nếu kho lưu trữ riêng của bạn được lưu trữ trên một máy chủ khác so với GitHub.com, bạn cũng cần truyền tên miền qua
jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v7
      with:
        dev: no
        args: --profile --ignore-platform-reqs
8.

Ví dụ Yaml, cho thấy cách vượt qua bí mật:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        ssh_key: ${{ secrets.ssh_key }}
        ssh_key_pub: ${{ secrets.ssh_key_pub }}

Có một kho lưu trữ ví dụ có sẵn để tham khảo tại //github.com/php-actions/example-composer sử dụng phụ thuộc riêng tư. Kiểm tra nó cho một dự án làm việc trực tiếp.

HTTP Xác thực cơ bản

Nên sử dụng các khóa SSH để xác thực, nhưng đôi khi xác thực cơ bản HTTP là công cụ duy nhất có sẵn tại thời điểm đó. Để sử dụng cơ chế xác thực này một cách an toàn nhất có thể, vui lòng làm theo các bước sau:

  1. Tạo mã thông báo truy cập cá nhân cho tài khoản GitHub mà bạn muốn xác thực.

  2. Thêm JSON sau vào một bí mật GitHub mới có tên

    name: CI
    
    on: [push]
    
    jobs:
      build:
        runs-on: [ubuntu-latest]
        
        steps:
        - uses: actions/checkout@v2
    
        - name: Cache Composer dependencies
          uses: actions/cache@v2
          with:
            path: /tmp/composer-cache
            key: ${{ runner.os }}-${{ hashFiles['**/composer.lock'] }}
          
        - uses: php-actions/composer@v6
    
        ...      
    5:

{
  "http-basic": {
    "github.com": {
      "username": "",
      "password": ""
    }
  }
}

  1. Chuyển bí mật này cho auth.json dưới dạng bước hành động riêng biệt trong cấu hình yaml của bạn và xóa auth.json để ngăn chặn triển khai nó:

jobs:
  build:

    ...
    
    - name: Add HTTP basic auth credentials
      run: echo '${{ secrets.COMPOSER_AUTH_JSON }}' > $GITHUB_WORKSPACE/auth.json

    - name: Install dependencies
      uses: php-actions/composer@v6
      
    - name: Remove auth.json file
      run: rm -f $GITHUB_WORKSPACE/auth.json

  1. Bây giờ, bất kỳ trình soạn thảo kết nối nào cho GitHub.com sẽ sử dụng thông tin xác thực HTTP BASIC của bạn, về cơ bản giống như được đăng nhập như bạn, vì vậy các kho lưu trữ riêng của bạn hiện sẽ có sẵn cho nhà soạn nhạc.

Nếu bạn thấy kho lưu trữ này hữu ích, vui lòng xem xét tài trợ cho nhà phát triển.

Bài Viết Liên Quan

Chủ Đề