-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (128 loc) · 4.4 KB
/
pythonpackage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Python package
on:
push:
branches:
- "**"
jobs:
python-lint:
strategy:
matrix:
python-version: ["3.10"]
platform: [ubuntu-latest]
fail-fast: false
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
id: cache
with:
path: ${{ env.pythonLocation }}
key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-root
- name: Install pdm
if: steps.cache.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
python -m pip install pdm>=2.11.1
- name: Install Dependencies
run: python -m pdm install -G lint -G dev
- name: Lint
run: python -m pdm run lint
python-test:
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
platform: [ubuntu-latest, windows-latest]
fail-fast: false
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
id: cache
with:
path: ${{ env.pythonLocation }}
key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-root
- name: Install pdm
if: steps.cache.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
python -m pip install pdm>=2.11.1
- name: Install Dependencies
run: python -m pdm install -dG test
- name: Test
run: python -m pdm run test
- name: Coveralls Parallel
uses: coverallsapp/github-action@v2
with:
flag-name: run-${{ join(matrix.*, '-') }}
parallel: true
- name: Archive code coverage results
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.platform }}-${{ matrix.python-version }}
path: reports/.coverage
coveralls-finish:
needs: [python-test]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/[email protected]
with:
parallel-finished: true
carryforward: "run-ubuntu-latest-3.10,run-ubuntu-latest-3.11,run-ubuntu-latest-3.12,run-windows-latest-3.10,run-windows-latest-3.11,run-windows-latest-3.12"
sonarcloud:
needs: [python-test]
if: ${{ always() }}
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Generate sonar properties
run: |
cat << EOF > sonar-project.properties
sonar.projectKey=ljnsn_coinapi-rest
sonar.organization=ljnsn
sonar.python.version=">=3.10"
sonar.python.coverage.reportPaths=reports/coverage.xml
sonar.sources=src/
sonar.tests=tests/
sonar.projectVersion="$(git describe --tags HEAD)"
EOF
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
bump-version:
runs-on: ubuntu-latest
needs: [python-lint, python-test]
if: |
github.event_name == 'push' &&
github.ref_name == 'main' &&
github.ref_type == 'branch' &&
!startsWith(github.event.head_commit.message, '🔖 bump(release):') &&
!startsWith(github.event.head_commit.message, 'bump(release):') &&
!startsWith(github.event.head_commit.message, '🔖 bump:') &&
!startsWith(github.event.head_commit.message, 'bump:')
name: "Bump version and create changelog with commitizen"
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
token: "${{ secrets.PERSONAL_ACCESS_TOKEN }}"
- name: Create bump and changelog
uses: commitizen-tools/commitizen-action@master
with:
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
extra_requirements: "cz-conventional-gitmoji"