-
Notifications
You must be signed in to change notification settings - Fork 47
130 lines (116 loc) · 4.53 KB
/
c_actions.yml
File metadata and controls
130 lines (116 loc) · 4.53 KB
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
# 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: Lint C code using Vera++
uses: SpiNNakerManchester/SupportScripts/actions/vera@main
with:
base-dir: neural_modelling/src
- name: Build C and install code
env:
SPINN_INSTALL_DIR: ${{ github.workspace }}/spinnaker_tools_install
SPINN_COMMON_INSTALL_DIR: ${{ github.workspace }}/spinn_common_install
FEC_INSTALL_DIR: ${{ github.workspace }}/fec_install
SPYNNAKER_INSTALL_DIR: ${{ github.workspace }}/spynnaker_install
CFLAGS: -fdiagnostics-color=always
run: |
make -C spinnaker_tools install
make -C spinn_common install
make -C SpiNNFrontEndCommon/c_common/front_end_common_lib install
make -C SpiNNFrontEndCommon/c_common
make -C neural_modelling
- name: Build C code in DEBUG mode
run: make clean; make SPYNNAKER_DEBUG=DEBUG
working-directory: neural_modelling
env:
SPINN_INSTALL_DIR: ${{ github.workspace }}/spinnaker_tools_install
SPINN_COMMON_INSTALL_DIR: ${{ github.workspace }}/spinn_common_install
FEC_INSTALL_DIR: ${{ github.workspace }}/fec_install
SPYNNAKER_INSTALL_DIR: ${{ github.workspace }}/spynnaker_install
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
SpiNNFrontEndCommon/spinn_front_end_common/common_model_binaries/logs*.sqlite3
retention-days: 5
- name: Upload PyNN binaries
uses: actions/upload-artifact@v4
with:
name: pynn_binaries
path: |
spynnaker/pyNN/model_binaries/*.aplx
spynnaker/pyNN/model_binaries/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: 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