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-here0 để 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-here1 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-here2 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-here3, vì
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v6 with: command: your-command-here4 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-here5, 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-here6, 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-reqs6,
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v7 with: dev: no args: --profile --ignore-platform-reqs7 và
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v7 with: dev: no args: --profile --ignore-platform-reqs8 đượ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-reqs9 và
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v6 with: php_version: "7.1" version: 10:
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: 16 là
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v6 with: php_version: "7.4" php_extensions: redis exif version: 2.x7 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.x8 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.x9 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-here3 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-reqs6 và
jobs: build: ... - name: Install dependencies uses: php-actions/composer@v7 with: dev: no args: --profile --ignore-platform-reqs7. 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-reqs8.
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:
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.
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": "" } } }
- 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
- 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.