Skip to content

Commit 83a7039

Browse files
committed
github: add CI build
Add Github CI supporting different architectures and ubus build options. Signed-off-by: Álvaro Fernández Rojas <[email protected]>
1 parent f247c18 commit 83a7039

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

.github/workflows/ci.yml

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: ubus
2+
3+
on:
4+
pull_request:
5+
push:
6+
7+
env:
8+
LUA_VERSION: 5.1.5
9+
10+
jobs:
11+
build:
12+
name: Build ${{ matrix.arch }}
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- arch: aarch64
19+
gcc: /usr/bin/aarch64-linux-gnu-gcc
20+
packages: gcc-aarch64-linux-gnu
21+
- arch: arm
22+
gcc: /usr/bin/arm-linux-gnueabi-gcc
23+
packages: gcc-arm-linux-gnueabi
24+
- arch: mips
25+
gcc: /usr/bin/mips-linux-gnu-gcc
26+
packages: gcc-mips-linux-gnu
27+
- arch: x86_64
28+
gcc: /usr/bin/x86_64-linux-gnu-gcc
29+
packages: gcc-x86-64-linux-gnu
30+
31+
steps:
32+
- name: Checkout uci
33+
uses: actions/checkout@v5
34+
35+
- name: Checkout json-c
36+
uses: actions/checkout@v5
37+
with:
38+
repository: json-c/json-c
39+
path: depends/json-c
40+
41+
- name: Checkout libubox
42+
uses: actions/checkout@v5
43+
with:
44+
repository: openwrt/libubox
45+
path: depends/libubox
46+
47+
- name: Install dependencies
48+
run: |
49+
sudo apt install ${{ matrix.packages }}
50+
51+
- name: Prepare build
52+
run: |
53+
mkdir -p ${GITHUB_WORKSPACE}/build
54+
55+
- name: Build json-c
56+
working-directory: depends/json-c
57+
run: |
58+
cmake \
59+
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
60+
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
61+
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
62+
-DBUILD_SHARED_LIBS=OFF -DDISABLE_EXTRA_LIBS=ON \
63+
--install-prefix ${GITHUB_WORKSPACE}/build
64+
make
65+
make install
66+
67+
- name: Build lua
68+
run: |
69+
mkdir -p depends/lua
70+
wget -qO- https://www.lua.org/ftp/lua-${{ env.LUA_VERSION }}.tar.gz | \
71+
tar zxvf - -C depends/lua --strip-components=1
72+
sed -i '/#define LUA_USE_READLINE/d' depends/lua/src/luaconf.h
73+
sed -i 's/ -lreadline -lhistory -lncurses//g' depends/lua/src/Makefile
74+
make -C depends/lua linux install \
75+
CC=${{ matrix.gcc }} \
76+
INSTALL_TOP=${GITHUB_WORKSPACE}/build
77+
78+
- name: Build libubox
79+
working-directory: depends/libubox
80+
run: |
81+
cmake \
82+
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
83+
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
84+
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
85+
-DBUILD_LUA=ON -DBUILD_EXAMPLES=OFF \
86+
-DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua \
87+
--install-prefix ${GITHUB_WORKSPACE}/build
88+
make
89+
make install
90+
91+
- name: Build ubus (basic)
92+
run: |
93+
cmake \
94+
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
95+
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
96+
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
97+
-DBUILD_LUA=OFF -DBUILD_EXAMPLES=OFF \
98+
-B build/ubus-basic
99+
make -C build/ubus-basic
100+
101+
- name: Build ubus (full)
102+
run: |
103+
cmake \
104+
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
105+
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
106+
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
107+
-DBUILD_LUA=ON -DBUILD_EXAMPLES=ON \
108+
-DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua \
109+
-B build/ubus-full
110+
make -C build/ubus-full

0 commit comments

Comments
 (0)