-
Notifications
You must be signed in to change notification settings - Fork 7
147 lines (129 loc) · 4.86 KB
/
c_actions.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
138
139
140
141
142
143
144
145
146
147
# Copyright (c) 2020 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: C Actions
on: [push]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Prepare
uses: SpiNNakerManchester/SupportScripts/actions/prepare@main
with:
python-version: "3.12"
checkout_dependencies: spinnaker_tools spinn_common SpiNNFrontEndCommon
install_dependencies: SpiNNUtils
install_module: false
install_check_tools: false
ubuntu_packages: doxygen gcc-arm-none-eabi
# Note: run these before building to avoid linting modified_src directories
- name: Lint C code using Vera++
uses: SpiNNakerManchester/SupportScripts/actions/vera@main
with:
base-dir: spinnaker_graph_front_end
options: -P max-dirname-length=40
- name: Lint C code using Vera++
uses: SpiNNakerManchester/SupportScripts/actions/vera@main
with:
base-dir: gfe_integration_tests
- name: "Prepare: Set Environment variables"
run: |
echo "SPINN_DIRS=$PWD/spinnaker_tools" >> $GITHUB_ENV
echo "C_LOGS_DICT=$PWD/logs.sqlite3" >> $GITHUB_ENV
- name: Build C dependencies
run: |
make -C spinnaker_tools
make -C spinn_common install
make -C SpiNNFrontEndCommon/c_common install
- name: Build FEC C code
run: make
working-directory: SpiNNFrontEndCommon/c_common
env:
CFLAGS: -fdiagnostics-color=always
- name: Build Example code
run: make
env:
CFLAGS: -fdiagnostics-color=always
GCC_COLORS: error=01;31:warning=01;35:note=01;36:range1=32:range2=34:locus=01:quote=01:fixit-insert=32:fixit-delete=31:diff-filename=01:diff-hunk=32:diff-delete=31:diff-insert=32
working-directory: gfe_examples
- name: Build Integration Test code (gfe_integration_tests)
run: make
env:
CFLAGS: -fdiagnostics-color=always
GCC_COLORS: error=01;31:warning=01;35:note=01;36:range1=32:range2=34:locus=01:quote=01:fixit-insert=32:fixit-delete=31:diff-filename=01:diff-hunk=32:diff-delete=31:diff-insert=32
working-directory: gfe_integration_tests
- name: Upload Fec binaries
uses: actions/upload-artifact@v4
with:
name: fec_binaries
path: SpiNNFrontEndCommon/spinn_front_end_common/common_model_binaries/*.aplx
retention-days: 5
- name: Upload test_extra_monitor binaries
uses: actions/upload-artifact@v4
with:
name: test_extra_monitor_binary
path: gfe_integration_tests/test_extra_monitor/*.aplx
retention-days: 5
- name: Upload log.sqlite3s
uses: actions/upload-artifact@v4
with:
name: logs.sqlite3
path: logs.sqlite3
retention-days: 5
test:
needs: build
runs-on: ${{ matrix.runner }}
timeout-minutes: 20
strategy:
matrix:
runner: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Prepare
uses: SpiNNakerManchester/SupportScripts/actions/prepare@main
with:
python-version: "3.12"
install_dependencies: >
SpiNNUtils SpiNNMachine SpiNNMan PACMAN spalloc
SpiNNFrontEndCommon TestBase
install_module: true
install_check_tools: false
ubuntu_packages: graphviz
cfg_file: spiNNakerGraphFrontEnd
- name: Download Fec binaries
uses: actions/download-artifact@v4
with:
name: fec_binaries
# Need to go into spynnaker as FEC will have been moved by install
path: external_binaries
- name: Download test_extra_monitor_binary Binaries
uses: actions/download-artifact@v4
with:
name: test_extra_monitor_binary
path: external_binaries
- name: Download logs.sqlite3
uses: actions/download-artifact@v4
with:
name: logs.sqlite3
path: external_binaries
- name: Append cfg
# Doing this in the prepare action ended with a different path
run: |
echo '[Mapping]' >> ~/.spiNNakerGraphFrontEnd.cfg
echo "external_binaries=$PWD/external_binaries" >> ~/.spiNNakerGraphFrontEnd.cfg
cat ~/.spiNNakerGraphFrontEnd.cfg
- name: Test with pytest and proxy
env:
SPALLOC_USER: ${{ secrets.SPALLOC_USER }}
SPALLOC_PASSWORD: ${{ secrets.SPALLOC_PASSWORD }}
run: pytest gfe_integration_tests/test_extra_monitor