1+ name : Continuous Integration
2+
3+ on :
4+ workflow_call :
5+ inputs :
6+ src-path :
7+ type : string
8+ default : " ./src"
9+ setup-path :
10+ type : string
11+ default : " ."
12+ repository :
13+ type : string
14+ default : ${{ github.repository }}
15+ python-versions :
16+ type : string
17+ default : ' ["3.9", "3.10", "3.11", "3.12", "3.13"]'
18+ fail-fast :
19+ type : boolean
20+ default : true
21+ package : # The import package name, not the pip install name
22+ type : string
23+ required : true
24+ requirements-file :
25+ type : string
26+ default : " requirements.txt"
27+ test-requirements-file :
28+ type : string
29+ default : " test-requirements.txt"
30+ runners : # If multiplatform tests aren't required, we can just do ubuntu
31+ type : string
32+ default : ' ["ubuntu-latest", "windows-latest", "macos-latest"]'
33+
34+
35+
36+ jobs :
37+ black :
38+ uses : ./.github/workflows/black.yml@main
39+ with :
40+ repository : ${{ inputs.repository }}
41+ path : ${{ inputs.src-path }}
42+ build-check :
43+ uses : ./.github/workflows/build-check.yml@main
44+ with :
45+ setup-path : ${{inputs.setup-path}}
46+ repository : ${{ inputs.repository }}
47+ python-versions : ${{ inputs.python-versions }}
48+ fail-fast : ${{ inputs.fail-fast }}
49+ mypy :
50+ uses : ./.github/workflows/mypy.yml@main
51+ with :
52+ setup-path : ${{inputs.setup-path}}
53+ repository : ${{ inputs.repository }}
54+ python-versions : ${{ inputs.python-versions }}
55+ fail-fast : ${{ inputs.fail-fast }}
56+ mypy-config : " pyproject.toml"
57+ package : ${{ inputs.package }}
58+ pylint :
59+ uses : ./.github/workflows/pylint.yml@main
60+ with :
61+ path : ${{inputs.src-path}}
62+ requirements-file : ${{inputs.requirements-file}}
63+ repository : ${{ github.repository }}
64+ python-versions : ${{inputs.python-versions}}
65+ fail-fast : ${{ inputs.fail-fast }}
66+ pytest-coverage :
67+ uses : ./.github/workflows/pytest-coverage.yml@main
68+ with :
69+ setup-path : ${{inputs.setup-path}}
70+ test-path : " "
71+ requirements-file : ${{inputs.test-requirements-file}}
72+ repository : ${{ github.repository }}
73+ python-versions : ${{inputs.python-versions}}
74+ fail-fast : ${{ inputs.fail-fast }}
75+ runners : ${{ inputs.runners }}
0 commit comments