2020 fail-fast : false
2121 matrix :
2222 os : [ubuntu-latest]
23- python-version : ['3.8', '3.9', '3.10', '3.11']
23+ python-version : ['3.8', '3.9', '3.10', '3.11', '3.12' ]
2424
2525 steps :
2626 - name : Checkout code
3636 - name : Install Poetry
3737 uses : snok/install-poetry@v1
3838 with :
39- version : 1.7.1
39+ version : latest
4040 virtualenvs-create : true
4141 virtualenvs-in-project : true
4242 virtualenvs-path : .venv
@@ -53,11 +53,17 @@ jobs:
5353
5454 - name : Install dependencies
5555 run : |
56- poetry install --with dev,test --no-interaction
56+ poetry install --with dev --no-interaction
5757
5858 - name : Run tests with coverage
5959 run : |
60- poetry run pytest --cov=dialogchain --cov-report=xml --cov-report=term-missing -v
60+ poetry run pytest \
61+ --cov=src/dialogchain \
62+ --cov-report=xml \
63+ --cov-report=term-missing \
64+ --cov-report=html \
65+ -v \
66+ tests/
6167
6268 - name : Upload coverage to Codecov
6369 uses : codecov/codecov-action@v4
6874
6975 - name : Run type checking
7076 run : |
71- poetry run mypy src/dialogchain tests
77+ poetry run mypy src/dialogchain
7278
7379 - name : Lint with flake8
7480 run : |
@@ -82,10 +88,15 @@ jobs:
8288 run : |
8389 poetry run isort --check-only src tests
8490
85- # Optional: Add a separate job for dependency security scanning
86- security :
87- name : Security Scan
91+ - name : Test CLI functionality
92+ run : |
93+ poetry run dialogchain --help
94+
95+ integration-tests :
96+ name : Integration Tests
8897 runs-on : ubuntu-latest
98+ needs : test
99+
89100 steps :
90101 - name : Checkout code
91102 uses : actions/checkout@v4
@@ -98,12 +109,43 @@ jobs:
98109 - name : Install Poetry
99110 uses : snok/install-poetry@v1
100111 with :
101- version : 1.7.1
112+ version : latest
113+ virtualenvs-create : true
114+ virtualenvs-in-project : true
102115
103116 - name : Install dependencies
104- run : poetry install --no-interaction
117+ run : |
118+ poetry install --no-interaction
105119
106- - name : Run safety check
120+ - name : Run integration tests
107121 run : |
108- poetry run pip install safety
109- poetry run safety check
122+ poetry run pytest tests/integration/ -v
123+
124+ build :
125+ name : Build Package
126+ runs-on : ubuntu-latest
127+ needs : test
128+
129+ steps :
130+ - name : Checkout code
131+ uses : actions/checkout@v4
132+
133+ - name : Set up Python
134+ uses : actions/setup-python@v5
135+ with :
136+ python-version : ' 3.11'
137+
138+ - name : Install Poetry
139+ uses : snok/install-poetry@v1
140+ with :
141+ version : latest
142+
143+ - name : Build package
144+ run : |
145+ poetry build
146+
147+ - name : Upload build artifacts
148+ uses : actions/upload-artifact@v4
149+ with :
150+ name : dist
151+ path : dist/
0 commit comments