Skip to content

Commit dea0d66

Browse files
ci: add basic testing and linting GitHub Actions workflow
1 parent 3b6756b commit dea0d66

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
branches: [main, master]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: '3.11'
21+
cache: 'pip'
22+
23+
- name: Install dependencies
24+
run: |
25+
python -m pip install --upgrade pip
26+
pip install -r requirements.txt
27+
pip install pytest ruff
28+
29+
- name: Run linter (ruff)
30+
run: |
31+
ruff check . --select=E9,F63,F7,F82 --output-format=github \
32+
--exclude="Dockerfile.*" \
33+
--exclude="linktest/" \
34+
--exclude="measurements/" \
35+
--exclude="0mq/" \
36+
--exclude="ratc/"
37+
# E9: Runtime errors (syntax errors, etc.)
38+
# F63: Invalid print syntax
39+
# F7: Syntax errors in type comments
40+
# F82: Undefined names in __all__
41+
# Excludes: Dockerfiles (not Python), linktest (symlinks),
42+
# measurements/0mq/ratc (config-dependent experimental scripts)
43+
44+
- name: Run tests (pytest)
45+
run: |
46+
pytest --tb=short -q \
47+
--ignore=measurements/ \
48+
--ignore=0mq/ \
49+
--ignore=ratc/ \
50+
--ignore=linktest/ \
51+
|| true
52+
# Allow pytest to pass even if no tests are collected yet
53+
# Remove "|| true" once proper tests are added
54+
# Ignores: experimental/config-dependent scripts
55+
56+
- name: Validate Dockerfile build
57+
run: |
58+
docker build -f Dockerfile.py -t concore-py-test .
59+
# Validates that Dockerfile.py can be built successfully
60+
# Does not push the image

0 commit comments

Comments
 (0)