-
Notifications
You must be signed in to change notification settings - Fork 32
141 lines (113 loc) · 3.62 KB
/
Copy pathci.yml
File metadata and controls
141 lines (113 loc) · 3.62 KB
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
135
136
137
138
139
140
141
name: CI
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Install ruff
run: pip install ruff
- name: Check formatting
run: ruff format --check .
- name: Lint
run: ruff check . --output-format=github
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-ci.txt
- name: Run tests
run: |
pytest --tb=short -q \
--cov=concore_cli --cov=concore_base \
--cov-report=term-missing \
--ignore=measurements/ \
--ignore=0mq/ \
--ignore=ratc/ \
--ignore=linktest/
julia-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
julia-version: ['1.10', '1']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-ci.txt
- name: Run Julia tests
run: julia --color=yes tests/julia/runtests.jl
shell: bash
java-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Download jeromq
run: |
curl -fsSL -o jeromq.jar https://repo1.maven.org/maven2/org/zeromq/jeromq/0.6.0/jeromq-0.6.0.jar
- name: Compile Java tests
run: |
javac -cp jeromq.jar ConcoreJavaRuntimeCore.java concore.java concoredocker.java TestLiteralEval.java TestConcoredockerApi.java TestConcoreApi.java
- name: Run Java tests
run: |
java -cp .:jeromq.jar TestLiteralEval
java -cp .:jeromq.jar TestConcoredockerApi
java -cp .:jeromq.jar TestConcoreApi
docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check if Dockerfile.py changed
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
dockerfile:
- 'Dockerfile.py'
- 'requirements.txt'
- name: Validate Dockerfile build
if: steps.filter.outputs.dockerfile == 'true'
run: docker build -f Dockerfile.py -t concore-py-test .
cpp-shm-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install g++
run: sudo apt-get update && sudo apt-get install -y g++
- name: Parse concore.hpp standalone
# -fsyntax-only parses concore.hpp without producing an object
# file, so we don't need system SHM semaphores or shared-memory
# segments to succeed. This catches header-level regressions on
# the SHM transport (issue #195) without needing g++ at runtime.
run: g++ -std=c++17 -Wall -Wextra -I. -fsyntax-only tests/test_shm_cpp_smoke.cpp