Skip to content

Commit af0ba08

Browse files
committed
ci setup
1 parent d194b09 commit af0ba08

File tree

4 files changed

+203
-3
lines changed

4 files changed

+203
-3
lines changed

.github/workflows/ci.yml

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Check out repository
15+
uses: actions/checkout@v3
16+
17+
- name: Set up Python 3.13
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: "3.13"
21+
22+
- name: Install PDM
23+
run: |
24+
python -m pip install --upgrade pip
25+
pip install pdm
26+
27+
- name: Install dependencies
28+
run: |
29+
pdm install -G:all
30+
31+
- name: Run tests with coverage
32+
run: |
33+
pdm run pytest --cov-report=xml
34+
35+
- name: Upload coverage to Codecov
36+
uses: codecov/codecov-action@v3
37+
with:
38+
token: ${{ secrets.CODECOV_TOKEN }}
39+
file: ./coverage.xml
40+
fail_ci_if_error: false
41+
42+
format:
43+
runs-on: ubuntu-latest
44+
45+
steps:
46+
- name: Check out repository
47+
uses: actions/checkout@v3
48+
49+
- name: Set up Python 3.13
50+
uses: actions/setup-python@v4
51+
with:
52+
python-version: "3.13"
53+
54+
- name: Install PDM
55+
run: |
56+
python -m pip install --upgrade pip
57+
pip install pdm
58+
59+
- name: Install dependencies
60+
run: |
61+
pdm install -G:all
62+
63+
- name: Check Black formatting
64+
run: |
65+
pdm run black --check
66+
67+
- name: Check isort
68+
run: |
69+
pdm run isort --check
70+
71+
- name: Check unused imports with autoflake
72+
run: |
73+
pdm run autoflake
74+
75+
type-check:
76+
runs-on: ubuntu-latest
77+
78+
steps:
79+
- name: Check out repository
80+
uses: actions/checkout@v3
81+
82+
- name: Set up Python 3.13
83+
uses: actions/setup-python@v4
84+
with:
85+
python-version: "3.13"
86+
87+
- name: Install PDM
88+
run: |
89+
python -m pip install --upgrade pip
90+
pip install pdm
91+
92+
- name: Install dependencies
93+
run: |
94+
pdm install -G:all
95+
96+
- name: Run mypy
97+
run: |
98+
pdm run mypy
99+
100+
docs:
101+
runs-on: ubuntu-latest
102+
103+
steps:
104+
- name: Check out repository
105+
uses: actions/checkout@v3
106+
107+
- name: Set up Python 3.13
108+
uses: actions/setup-python@v4
109+
with:
110+
python-version: "3.13"
111+
112+
- name: Install PDM
113+
run: |
114+
python -m pip install --upgrade pip
115+
pip install pdm
116+
117+
- name: Install dependencies
118+
run: |
119+
pdm install -G:all
120+
121+
- name: Check markdown formatting
122+
run: |
123+
echo "Markdown format checking temporarily disabled"
124+
exit 0
125+
126+
# todo: https://github.com/ydah/mdformat-action
127+
128+
# build:
129+
# runs-on: ubuntu-latest
130+
# needs: [test, format, type-check, docs]
131+
132+
# steps:
133+
# - name: Check out repository
134+
# uses: actions/checkout@v3
135+
136+
# - name: Set up Python 3.13
137+
# uses: actions/setup-python@v4
138+
# with:
139+
# python-version: "3.13"
140+
141+
# - name: Install PDM
142+
# run: |
143+
# python -m pip install --upgrade pip
144+
# pip install pdm
145+
146+
# - name: Install dependencies
147+
# run: |
148+
# pdm install -G:all
149+
150+
# - name: Build package
151+
# run: |
152+
# pdm build

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
# Python API Client for Fitbit™
22

3-
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
4-
[![PDM](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)
3+
# Fitbit Client
4+
5+
[![CI](https://github.com/jpstroop/fitbit-client/actions/workflows/ci.yml/badge.svg)](https://github.com/jpstroop/fitbit-client/actions/workflows/ci.yml)
6+
[![codecov](https://codecov.io/gh/jpstroop/fitbit-client/branch/main/graph/badge.svg)](https://codecov.io/gh/jpstroop/fitbit-client)
57
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
6-
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
8+
[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/release/python-3130/)
9+
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
710

811
A fully-typed Python client for interacting with the Fitbit API, featuring
912
OAuth2 PKCE authentication and resource-based API interactions.

codecov.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
codecov:
2+
require_ci_to_pass: yes
3+
strict_yaml_branch: main
4+
5+
coverage:
6+
precision: 2
7+
round: down
8+
range: "95...100"
9+
status:
10+
project:
11+
default:
12+
target: 100%
13+
threshold: 0%
14+
base: auto
15+
branches:
16+
- main
17+
if_not_found: failure
18+
if_ci_failed: error
19+
informational: false
20+
only_pulls: false
21+
patch:
22+
default:
23+
target: 100%
24+
threshold: 0%
25+
base: auto
26+
branches:
27+
- main
28+
if_not_found: failure
29+
if_ci_failed: error
30+
informational: false
31+
only_pulls: false
32+
33+
parsers:
34+
gcov:
35+
branch_detection:
36+
conditional: yes
37+
loop: yes
38+
method: no
39+
macro: no
40+
41+
comment:
42+
layout: "reach,diff,flags,files,footer"
43+
behavior: default
44+
require_changes: no

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ codeformatters = [
7373
extensions = [
7474
"gfm"
7575
]
76+
exclude = [".venv/**"]
7677

7778
[tool.pytest.ini_options]
7879
testpaths = ["tests"]

0 commit comments

Comments
 (0)