Hành động/thiết lập-python@v4

Hành động này cho phép bạn xác định tùy chỉnh tập tin python bên trong tệp yaml công việc. Viết mã Python của bạn làm đối số

name: Run Script

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]
      - uses: actions/[email protected]
      - uses: jannekem/[email protected]
        id: script
        with:
          fail-on-error: false
          script: |
            print("Doing something that will fail")
            a = []
            a[10]
      - name: Print errors
        if: steps.script.outputs.error == 'true'
        run: |
          printenv "SCRIPT_STDOUT"
          printenv "SCRIPT_STDERR"
        env:
          SCRIPT_STDOUT: ${{ steps.script.outputs.stdout }}
          SCRIPT_STDERR: ${{ steps.script.outputs.stderr }} 
8 và sử dụng tính năng chuỗi đa dòng YAML để xác định các lệnh đa dòng của tập tin

Yêu cầu duy nhất là bạn thiết lập môi trường Python trước khi chạy hành động. Dưới đây là một ví dụ quy trình công việc trong nội dung thư mục gốc của kho lưu trữ vào nhật ký hành động

Phần còn lại của hướng dẫn này bao gồm việc định cấu hình các dự án Python trong Travis CI. Nếu bạn là người mới sử dụng Travis CI, vui lòng đọc Hướng dẫn của chúng tôi và xây dựng hướng dẫn cấu hình trước

Chỉ định phiên bản Python #

Chỉ định các phiên bản Python bằng phím

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
9. Khi chúng tôi cập nhật hình ảnh bản dựng Python, các bí danh như
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
0 sẽ trỏ đến các phiên bản hoặc cấp bản vá chính xác khác nhau

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest

Nếu phiên bản Python được chỉ định không có sẵn trên hình ảnh bản dựng hiện tại, công việc sẽ cố tải xuống kho lưu trữ từ xa phù hợp và cung cấp nó. Bạn có thể tìm thấy danh sách các phiên bản như vậy trong bảng bên dưới

Travis CI Sử dụng virtualenvs biệt lập #

Môi trường CI sử dụng các phiên bản virtualenv riêng biệt cho từng phiên bản Python. Điều này có nghĩa là ngay sau khi bạn chỉ định

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
1 trong
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
2, các thử nghiệm của bạn sẽ chạy bên trong virtualenv (mà bạn không cần phải tạo nó một cách rõ ràng). Hệ thống Python không được sử dụng và không nên dựa vào. Nếu bạn cần cài đặt các gói Python, hãy thực hiện qua pip chứ không phải apt

Nếu bạn vẫn quyết định sử dụng apt, hãy lưu ý rằng vì lý do tương thích, bạn sẽ chỉ có thể sử dụng các phiên bản Python mặc định có sẵn trong Ubuntu (e. g. đối với Xenial, điều này có nghĩa là 2. 7. 12 và 3. 5. 2). Để truy cập các gói bên trong virtualenv, bạn cần chỉ định rằng nó sẽ được tạo bằng tùy chọn

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
3. Để làm điều này, hãy bao gồm những điều sau đây trong
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
2 của bạn

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true

Hỗ trợ PyPy #

Travis CI hỗ trợ PyPy và PyPy3

Để kiểm tra dự án của bạn dựa trên PyPy, hãy thêm “pypy” và/hoặc “pypy3” vào danh sách Python trong

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
2 của bạn

language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest

Hỗ trợ xây dựng hàng đêm #

Travis CI hỗ trợ tên phiên bản đặc biệt

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
6, chỉ ra phiên bản phát triển gần đây của bản dựng CPython

Hỗ trợ phát hành phát triển #

Từ Python 3. 5 trở lên, có sẵn các phiên bản Python In Development

Bạn có thể chỉ định những thứ này trong bản dựng của mình bằng

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
7,
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
8,
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
9,
language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
0,
language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
1,
language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
2 hoặc
language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
3

Tập lệnh xây dựng mặc định #

Các dự án Python cần cung cấp khóa

language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
4 trong
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
2 của chúng để chỉ định lệnh nào sẽ chạy thử nghiệm với

Ví dụ: nếu dự án của bạn sử dụng pytest

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
0

nếu nó sử dụng

language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
6 thay thế

Nếu bạn không cung cấp khóa

language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
4 trong dự án Python, Travis CI sẽ in một thông báo (“Vui lòng ghi đè tập lệnh. chìa khóa trong của bạn. travis. yml để chạy thử nghiệm. ”) và không thể xây dựng

Sử dụng Tox làm Tập lệnh xây dựng #

Do cách thiết kế của Travis, việc tương tác với tox không đơn giản. Như đã mô tả ở trên, Travis đã chạy thử nghiệm bên trong một virtualenv bị cô lập bất cứ khi nào chỉ định

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
1, vì vậy hãy ghi nhớ điều đó bất cứ khi nào tạo thêm môi trường với tox. Nếu bạn muốn chạy tox bên ngoài virtualenv do Travis tạo, bạn nên sử dụng
language: python
python:
  - "2.7"
  - "3.8"
  # PyPy versions
  - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
  - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
# command to install dependencies
install:
  - pip install -r requirements.txt
  - pip install .
# command to run tests
script: pytest
9 thay vì
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
1

Nếu bạn đang sử dụng tox để kiểm tra mã của mình với nhiều phiên bản Python, bạn có hai tùy chọn

  • sử dụng
    language: python
    python:
      - "2.7"
      - "3.8"
      # PyPy versions
      - "pypy"   # currently Python 2.7.13, PyPy 7.1.1
      - "pypy3"  # currently Python 3.6.9,  PyPy 7.3.1
    # command to install dependencies
    install:
      - pip install -r requirements.txt
      - pip install .
    # command to run tests
    script: pytest
    
    9 và cài đặt thủ công các phiên bản Python mà bạn quan tâm trước khi chạy tox (nếu không cài đặt thủ công, tox sẽ chỉ có quyền truy cập vào các phiên bản Ubuntu Python mặc định - 2. 7. 12 và 3. 5. 2 cho Xenial)
  • sử dụng
    language: python
    python:
      - "2.7"
      - "3.5"
    virtualenv:
      system_site_packages: true
    
    1 và một ma trận xây dựng sử dụng một phiên bản Python khác cho mỗi nhánh (bạn có thể chỉ định phiên bản Python bằng cách sử dụng khóa
    language: python
    python:
      - "2.7"
      - "3.5"
    virtualenv:
      system_site_packages: true
    
    9). Điều này sẽ đảm bảo các phiên bản mà bạn quan tâm được cài đặt và xử lý song song khối lượng công việc của bạn

Chạy thử nghiệm Python trên nhiều Hệ điều hành #

Đôi khi cần đảm bảo rằng phần mềm hoạt động giống nhau trên nhiều Hệ điều hành. Tệp

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
2 sau đây sẽ chạy thử nghiệm song song trên Linux, macOS và Windows

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
9

Quản lý phụ thuộc #

ống #

Theo mặc định, Travis CI sử dụng

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 để quản lý các phụ thuộc Python. Nếu bạn có tệp
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
06, Travis CI sẽ chạy
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
07 trong giai đoạn xây dựng
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
08

Ví dụ, bạn có thể ghi đè giai đoạn

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
08 mặc định này theo cách thủ công

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
5

Xin lưu ý rằng tùy chọn

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
90 là bắt buộc nếu bạn không sử dụng
language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
1, vì sẽ không có virtualenv nào được tạo trong trường hợp đó

Trình giải quyết phụ thuộc mới trong
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 20. 3 #

Như được mô tả trong thông báo của PyPa,

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 phiên bản 20. 3 sẽ xuất xưởng với một trình giải quyết phụ thuộc mới. Điều này có thể có những thay đổi bất ngờ trong phần mềm của bạn;

Để kiểm tra tác dụng của trình giải quyết phụ thuộc mới trên phần mềm của bạn, chúng tôi khuyên bạn nên kiểm tra nó với

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 phiên bản 20. 2. Để làm như vậy, hãy sửa đổi bản dựng của bạn để cập nhật
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 lên phiên bản 20. 2 và để gọi
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 với cờ
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
97. Ví dụ

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
4

Quản lý phụ thuộc tùy chỉnh #

Để ghi đè quản lý phụ thuộc

language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
05 mặc định, hãy thay đổi bước
language: python
python:
  - "2.7"
  - "3.4"
  - "3.5"
  - "3.6"      # current default Python on Travis CI
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.9-dev"  # 3.9 development branch
  - "nightly"  # nightly build
# command to install dependencies
install:
  - pip install -r requirements.txt
# command to run tests
script:
  - pytest
99 như được mô tả trong hướng dẫn cấu hình bản dựng chung

Thử nghiệm đối với nhiều phiên bản phụ thuộc (e. g. Django hoặc Flask) #

Nếu bạn cần kiểm tra nhiều phiên bản của Django, chẳng hạn như Django, bạn có thể hướng dẫn Travis CI thực hiện nhiều lần chạy với các tập hợp hoặc giá trị biến môi trường khác nhau

Sử dụng khóa env trong của bạn. travis. tập tin yml chẳng hạn

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
7

và sau đó sử dụng các giá trị biến ENV trong tập lệnh cài đặt phần phụ thuộc, trường hợp thử nghiệm hoặc giá trị tham số tập lệnh thử nghiệm của bạn. Ở đây chúng tôi sử dụng giá trị biến ENV để hướng dẫn pip cài đặt phiên bản chính xác

language: python
python:
  - "2.7"
  - "3.5"
virtualenv:
  system_site_packages: true
8

Kỹ thuật tương tự thường được sử dụng để kiểm tra các dự án dựa trên nhiều cơ sở dữ liệu, v.v.

Để biết các ví dụ trong thế giới thực, hãy xem getentry/sentry và jpvanhal/flask-split

Xây dựng tham khảo cấu hình #

Bạn có thể tìm thêm thông tin về định dạng cấu hình bản dựng cho Python trong Tài liệu tham khảo cấu hình bản dựng Travis CI của chúng tôi

Làm cách nào để định cấu hình Python trong thiết lập

setup-python có thể cấu hình Python từ hai nguồn. Các phiên bản Python được cài đặt sẵn trong bộ đệm công cụ trên các trình chạy được lưu trữ trên GitHub. Để biết thông tin chi tiết về các phiên bản Python có sẵn được cài đặt, hãy xem Phần mềm được hỗ trợ. Đối với mọi phiên bản nhỏ của Python, chỉ mong đợi bản vá mới nhất được cài đặt sẵn

Phiên bản Python mặc định là gì?

Phiên bản mặc định của Python hoặc PyPy trong PATH khác nhau giữa các trình chạy và có thể thay đổi bất ngờ, vì vậy chúng tôi khuyên bạn nên luôn đặt rõ ràng phiên bản Python bằng cách sử dụng đầu vào tệp phiên bản python hoặc tệp phiên bản python. Trước tiên, hành động sẽ kiểm tra bộ đệm công cụ cục bộ để tìm kết quả khớp học kỳ

Tôi có nên sử dụng Python mà không cần thiết lập

Sử dụng Python mà không cần setup-python setup-python giúp giữ cho các phần phụ thuộc của bạn rõ ràng và đảm bảo hành vi nhất quán giữa các trình chạy khác nhau. Nếu bạn sử dụng python trong shell trên trình chạy được lưu trữ trên GitHub mà không có setup-python, nó sẽ mặc định là bất cứ thứ gì có trong PATH

Python là gì

Phiên bản python chứa phiên bản Python hoặc PyPy. Trong phạm vi của bản phát hành này, chúng tôi đã thêm hỗ trợ cho bộ nhớ đệm từ GHES 3. 5 và khắc phục sự cố tải xuống đối với tệp > 2GB trong quá trình khôi phục