-
Notifications
You must be signed in to change notification settings - Fork 2
137 lines (112 loc) · 3.75 KB
/
ci.yml
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
name: Test
on:
push:
branches: [ main ]
paths:
- "cncmark/**"
- "server/**"
pull_request:
workflow_dispatch:
jobs:
# mark:
# strategy:
# fail-fast: false
# matrix:
# python-version: ["3.11"]
# poetry-version: ["1.5.1"]
# os: [ubuntu-latest]
# runs-on: ${{ matrix.os }}
# defaults:
# run:
# working-directory: cncmark
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python-version }}
# - name: Run MySQL
# run: |
# docker-compose up -d mysql
# working-directory: .
# - name: Run image
# uses: abatilo/actions-poetry@v2
# with:
# poetry-version: ${{ matrix.poetry-version }}
# - name: Setup a local virtual environment (if no poetry.toml file)
# run: |
# poetry config virtualenvs.create true --local
# poetry config virtualenvs.in-project true --local
# - uses: actions/cache@v3
# name: Define a cache for the virtual environment based on the dependencies lock file
# with:
# path: ./.venv
# key: venv-${{ hashFiles('poetry.lock') }}
# - name: Install the project dependencies
# run: poetry install
# - name: Format with black
# run: |
# poetry run black --check cncmark tests
# - name: Lint with ruff
# run: |
# # stop the build if there are Python syntax errors or undefined names
# poetry run ruff --format=github --select=E9,F63,F7,F82 --target-version=py37 .
# # default set of ruff rules with GitHub Annotations
# poetry run ruff --format=github --target-version=py37 .
# - name: Run the automated tests
# run: poetry run pytest -v --cov=cncmark
server:
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
poetry-version: ["1.5.1"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Run MySQL & Mosquitto & Node-RED
run: |
docker-compose up -d mysql mosquitto nodered
working-directory: .
- name: Run image
uses: abatilo/actions-poetry@v2
with:
poetry-version: ${{ matrix.poetry-version }}
- name: Setup a local virtual environment (if no poetry.toml file)
run: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- uses: actions/cache@v3
name: Define a cache for the virtual environment based on the dependencies lock file
with:
path: ./.venv
key: venv-${{ hashFiles('poetry.lock') }}
- name: Install the project dependencies
run: poetry install
- name: Format with black
run: |
poetry run black --check server tests
- name: Lint with ruff
run: |
# stop the build if there are Python syntax errors or undefined names
poetry run ruff --output-format=github --select=E9,F63,F7,F82 --target-version=py37 .
# default set of ruff rules with GitHub Annotations
poetry run ruff --output-format=github --target-version=py37 .
- name: Run the automated tests
run: poetry run pytest -v --cov=server
docker:
runs-on: ubuntu-latest
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v4
- name: Docker Build
run: |
docker build .