-
Notifications
You must be signed in to change notification settings - Fork 1
79 lines (70 loc) · 3.04 KB
/
Copy pathci.yml
File metadata and controls
79 lines (70 loc) · 3.04 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
name: ci
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: {}
permissions:
contents: read
jobs:
lint-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
package: [ opendata_core, ckan-mcp-server, istat-mcp-server, opencoesione-mcp-server, openpnrr-mcp-server, centriditalia-mcp-server, opendata-mcp-server, ispra-mcp-server, ods-mcp-server, socrata-mcp-server, bdap-mcp-server, osm-mcp, maturity-mcp-server, opendata-backend ]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
- name: Install opendata-core (shared)
run: |
python -m pip install --upgrade pip
python -m pip install -e "./opendata_core[dev]"
- name: Install package (editable + dev extras)
working-directory: ${{ matrix.package }}
run: |
python -m pip install --pre -e ".[dev]" || python -m pip install -e ".[dev]"
- name: Ruff
working-directory: ${{ matrix.package }}
run: ruff check src
- name: Pytest
working-directory: ${{ matrix.package }}
run: |
if [ -d tests ]; then pytest -q ; else echo "no tests yet" ; fi
docker-build:
runs-on: ubuntu-latest
needs: lint-and-test
strategy:
matrix:
service:
- { name: ckan-mcp-server, dockerfile: ckan-mcp-server/Dockerfile }
- { name: istat-mcp-server, dockerfile: istat-mcp-server/Dockerfile }
- { name: opencoesione-mcp-server, dockerfile: opencoesione-mcp-server/Dockerfile }
- { name: openpnrr-mcp-server, dockerfile: openpnrr-mcp-server/Dockerfile }
- { name: centriditalia-mcp-server, dockerfile: centriditalia-mcp-server/Dockerfile }
- { name: opendata-mcp-server, dockerfile: opendata-mcp-server/Dockerfile }
- { name: ispra-mcp-server, dockerfile: ispra-mcp-server/Dockerfile }
- { name: ods-mcp-server, dockerfile: ods-mcp-server/Dockerfile }
- { name: socrata-mcp-server, dockerfile: socrata-mcp-server/Dockerfile }
- { name: bdap-mcp-server, dockerfile: bdap-mcp-server/Dockerfile }
- { name: osm-mcp, dockerfile: osm-mcp/Dockerfile }
- { name: maturity-mcp-server, dockerfile: maturity-mcp-server/Dockerfile }
- { name: opendata-backend, dockerfile: opendata-backend/Dockerfile }
steps:
- uses: actions/checkout@v5
- uses: docker/setup-buildx-action@v3
- name: Build ${{ matrix.service.name }}
uses: docker/build-push-action@v6
with:
# All services build from the repo root so the shared opendata_core/
# package can be copied in alongside their own sources.
context: .
file: ${{ matrix.service.dockerfile }}
push: false
load: true
tags: ${{ matrix.service.name }}:ci
cache-from: type=gha,scope=${{ matrix.service.name }}
cache-to: type=gha,scope=${{ matrix.service.name }},mode=max