To set up CI for a Python project using GitHub Actions, use the following workflow:
name: Lint and Test Python Codeon:pull_request:branches: [$default-branch]permissions:contents: readjobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- name: Set up Python 3.11uses: actions/setup-python@v3with:python-version: "3.11"- name: Install dependenciesrun: |python -m pip install --upgrade pippip install flake8 pytestif [-f requirements.txt]; then pip install -r requirements.txt; fi- name: Lint with flake8run: |# stop the build if there are Python syntax errors or undefined namesflake8 . --count --select=E9,F63,F7,F82 --show-source --statistics# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wideflake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics- name: Test with pytestrun: |pytestname: Lint and Test Python Code on: pull_request: branches: [$default-branch] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v3 with: python-version: "3.11" - name: Install dependencies run: | python -m pip install --upgrade pip pip install flake8 pytest if [-f requirements.txt]; then pip install -r requirements.txt; fi - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytestname: Lint and Test Python Code on: pull_request: branches: [$default-branch] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v3 with: python-version: "3.11" - name: Install dependencies run: | python -m pip install --upgrade pip pip install flake8 pytest if [-f requirements.txt]; then pip install -r requirements.txt; fi - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest
Enter fullscreen mode Exit fullscreen mode
Give the file a descriptive name and save it to .github/workflows
. This workflow uses a Python 3.11 interpreter, checks your code for PEP 8 violations and runs unit tests using Pytest.
原文链接:Setting Up Continuous Integration with GitHub Actions for a Python Project
© 版权声明
THE END
暂无评论内容