-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (121 loc) · 4.6 KB
/
pr.yaml
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
142
143
144
145
name: Test PowerPi
on:
pull_request:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check modified projects
id: check_modified
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/check_modified.sh"
# setup node.js
- name: Install Node.js
if: steps.check_modified.outputs.nodejs
uses: actions/setup-node@v4
with:
node-version: 20.x
# install node.js dependencies
- name: Install Node.js dependencies
if: steps.check_modified.outputs.nodejs
run: |
yarn install
yarn build:lib
# setup python
- name: Install Python
if: steps.check_modified.outputs.python
uses: actions/setup-python@v5
with:
python-version: "3.11"
# setup poetry
- name: Install Poetry
if: steps.check_modified.outputs.python
uses: snok/install-poetry@v1
with:
version: 1.7.1
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
# test the common libraries
- name: Test PowerPi Node Common
if: steps.check_modified.outputs.node_common
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh common"
- name: Test PowerPi Python Common
if: steps.check_modified.outputs.python_common
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh python_common"
working-directory: common/python
# test the controllers
- name: Test Energenie Controller
if: steps.check_modified.outputs.energenie_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh energenie"
working-directory: controllers/energenie
- name: Test Harmony Controller
if: steps.check_modified.outputs.harmony_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh harmony"
working-directory: controllers/harmony
- name: Test LIFX Controller
if: steps.check_modified.outputs.lifx_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh lifx"
working-directory: controllers/lifx
- name: Test Network Controller
if: steps.check_modified.outputs.network_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh network"
working-directory: controllers/network
- name: Test Snapcast Controller
if: steps.check_modified.outputs.snapcast_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh snapcast"
working-directory: controllers/snapcast
- name: Test Virtual Controller
if: steps.check_modified.outputs.virtual_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh virtual"
working-directory: controllers/virtual
- name: Test ZigBee Controller
if: steps.check_modified.outputs.zigbee_controller
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh zigbee"
working-directory: controllers/zigbee
# test the services
- name: Test API
if: steps.check_modified.outputs.api
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh api"
- name: Test Config Server
if: steps.check_modified.outputs.config_server
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh config-server"
- name: Test Event Service
if: steps.check_modified.outputs.event
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh event"
working-directory: services/event
- name: Test Persistence
if: steps.check_modified.outputs.persistence
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh persistence"
- name: Test Scheduler
if: steps.check_modified.outputs.scheduler
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_python.sh scheduler"
working-directory: services/scheduler
- name: Test UI
if: steps.check_modified.outputs.ui
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh ui"
- name: Test Voice Assistant
if: steps.check_modified.outputs.voice_assistant
shell: bash
run: "${GITHUB_WORKSPACE}/.github/scripts/test_node.sh voice-assistant"