-
Notifications
You must be signed in to change notification settings - Fork 45
144 lines (125 loc) · 4.43 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
# 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.
# This workflow will install Python dependencies, run tests, lint and rat with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: C Actions
on: [push]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Prepare
uses: SpiNNakerManchester/SupportScripts/actions/prepare@main
with:
checkout_dependencies: spinnaker_tools spinn_common SpiNNFrontEndCommon
install_dependencies: SpiNNUtils
install_module: false
install_check_tools: false
ubuntu_packages: doxygen gcc-arm-none-eabi
- name: Set environment variables
run: |
echo "SPINN_DIRS=$PWD/spinnaker_tools" >> $GITHUB_ENV
echo "NEURAL_MODELLING_DIRS=$PWD/neural_modelling" >> $GITHUB_ENV
echo "C_LOGS_DICT=$PWD/logs.sqlite3" >> $GITHUB_ENV
- name: Lint C code using Vera++
uses: SpiNNakerManchester/SupportScripts/actions/vera@main
with:
base-dir: neural_modelling/src
- name: Build C dependencies
run: |
make -C $SPINN_DIRS
make -C spinn_common install
- name: Build FEC C code
run: make
working-directory: SpiNNFrontEndCommon/c_common
env:
CFLAGS: -fdiagnostics-color=always
- name: Build PYNN C code
run: make
working-directory: neural_modelling
env:
CFLAGS: -fdiagnostics-color=always
- name: Build C code in DEBUG mode
run: make clean; make SPYNNAKER_DEBUG=DEBUG
working-directory: neural_modelling
env:
CFLAGS: -fdiagnostics-color=always
- name: Build documentation using doxygen
run: make doxysetup doxygen
working-directory: neural_modelling
- 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 PyNN binaries
uses: actions/upload-artifact@v4
with:
name: pynn_binaries
path: spynnaker/pyNN/model_binaries/*.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: 60
strategy:
matrix:
#runner: [ubuntu-latest, windows-latest, macos-latest]
runner: [ubuntu-latest, windows-latest]
steps:
- name: Prepare
uses: SpiNNakerManchester/SupportScripts/actions/prepare@main
with:
install_dependencies: >
SpiNNUtils SpiNNMachine SpiNNMan PACMAN spalloc
SpiNNFrontEndCommon TestBase
install_module: true
install_check_tools: false
ubuntu_packages: graphviz
cfg_file: spynnaker
- 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 PyNN Binaries
uses: actions/download-artifact@v4
with:
name: pynn_binaries
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]' >> ~/.spynnaker.cfg
echo "external_binaries=$PWD/external_binaries" >> ~/.spynnaker.cfg
cat ~/.spynnaker.cfg
- name: Test with pytest and proxy
env:
SPALLOC_USER: ${{ secrets.SPALLOC_USER }}
SPALLOC_PASSWORD: ${{ secrets.SPALLOC_PASSWORD }}
run: pytest proxy_integration_tests