-
Notifications
You must be signed in to change notification settings - Fork 29
152 lines (131 loc) · 5.42 KB
/
withAptitude.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
148
149
150
151
152
# Rely on Aptitude to install dependencies and latest security updates
name: withAptitude
# Run this workflow manually from the Actions tab
on: workflow_dispatch
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "populate"
populate:
# Run on a single platform or use a matrix to test against several
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
gr: [3.9., 3.10.]
bokeh: [2.3.1, 2.x.]
fail-fast: false
# Steps represent a sequence of tasks that will be executed as part of the job
name: gr-bokeh with gnuradio ${{ matrix.gr }} and bokeh ${{ matrix.bokeh }} on ${{ matrix.os }}
steps:
- name: Essential housekeeping
run: |
mkdir -p ~/artifacts
sudo apt update
- name: Security first
if: true
run: |
sudo apt install -y software-properties-common apt-utils
sudo apt install -y unattended-upgrades
sudo unattended-upgrade -d >~/artifacts/securityFirst.log
- name: Performance second
if: true
run: sudo apt upgrade -qy
- name: Build essentials
if: true
run: |
sudo apt install -qy build-essential cmake cmake-curses-gui ninja-build
sudo apt install -qy texinfo gawk g++ swig
sudo apt install -qy npm nodejs
sudo npm install -g [email protected]
- name: Install GNUradio PPA 3.8
if: ${{ startswith(matrix.os,'ubuntu') && matrix.gr == '3.8.' }}
run: |
sudo add-apt-repository -y ppa:gnuradio/gnuradio-releases-3.8
sudo apt update
- name: Install GNUradio PPA 3.9
if: ${{ startswith(matrix.os,'ubuntu') && matrix.gr == '3.9.' }}
run: |
sudo add-apt-repository -y ppa:gnuradio/gnuradio-releases-3.9
sudo apt update
- name: Install GNUradio PPA 3.10
if: ${{ startswith(matrix.os,'ubuntu') && matrix.gr == '3.10.' }}
run: |
sudo add-apt-repository -y ppa:gnuradio/gnuradio-releases
sudo apt update
sudo apt install -qy libiio-dev libad9361-dev libspdlog-dev python3-packaging
- name: Additions
if: true
run: |
sudo apt install -qy liborc-dev
- name: Other possible requirements (enable as needed)
if: false
run: |
sudo apt install -qy build-essential npm nodejs cmake cmake-curses-gui ninja-build python3-pip
sudo apt install -qy lrzip cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \
python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev \
libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \
liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \
python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0 \
libcodec2-dev libgsm1-dev
sudo apt install -qy pybind11-dev python3-matplotlib libsndfile1-dev \
python3-pip libsoapysdr-dev soapysdr-tools
pip install pygccxml
pip install pyqtgraph
sudo apt install -qy libiio-dev libad9361-dev libspdlog-dev python3-packaging
- name: Install gnuradio
run: |
sudo apt install -y gnuradio gnuradio-dev
- name: Blacklist default version of Python 2
if: true
run: |
sudo apt remove --purge -y python || true
sudo apt autoremove
sudo apt install -y python3-pip
python3 -m pip install --user --upgrade pip
pip install setuptools
- name: Checkout the current branch
uses: actions/checkout@master
- name: Checkout ${{ matrix.bokeh }} of bokeh/bokehjs
if: ${{ matrix.bokeh != '2.x.' }}
uses: actions/checkout@master
with:
repository: bokeh/bokeh
ref: refs/tags/${{ matrix.bokeh }}
path: 'build'
- name: Install bokeh and bokehjs
if: ${{ matrix.bokeh != '2.x.' }}
run: |
cd build
npm init -y
npm install
pushd bokeh
npm install
cd ../bokehjs
npm install
popd
python3 ./setup.py install --build-js || sudo python3 ./setup.py install --install-js
- name: use pip to install bokeh
if: ${{ matrix.bokeh == '2.x.' }}
run: |
pip install bokeh
- name: Build gr-bokehgui with CMake
run: |
gnuradio-config-info --version >~/artifacts/gnuradio.log
gnuradio-config-info --prefix --prefs >>~/artifacts/gnuradio.log
gnuradio-config-info --enabled-components >>~/artifacts/gnuradio.log
gnuradio-config-info --cc --cxx --cflags >>~/artifacts/gnuradio.log
python3 -m bokeh info >~/artifacts/bokeh.log
mkdir -p build && cd build
cmake ..
cmake --build .
sudo cmake --build . --target install
- name: Did it work?
run: |
cd examples
grcc tutorial.grc
cp tutorial.py ~/artifacts
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: gr=${{matrix.gr}}_bokeh=${{matrix.bokeh}}_os=${{matrix.os}}
path: ~/artifacts/