Setting Up Continuous Integration with GitHub Actions for a Python Project

To set up CI for a Python project using GitHub Actions, use the following workflow:

name: 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
name: 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
name: 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
喜欢就支持一下吧
点赞12 分享
Every day has not danced, all are life's disappointment.
每一个不曾起舞的日子,都是对生命的辜负
评论 抢沙发

请登录后发表评论

    暂无评论内容