Skip to content

Commit 6fdf7a9

Browse files
committed
github: improve CI
- Remove unneeded CMAKE_SYSTEM_PROCESSOR. - Add summary table with sizes (in bytes) for each arch/variant. - Upload generated binaries as artifacts. - Add OpenWrt formalities. Signed-off-by: Álvaro Fernández Rojas <[email protected]>
1 parent 60e0404 commit 6fdf7a9

File tree

3 files changed

+91
-11
lines changed

3 files changed

+91
-11
lines changed

.github/workflows/ci.yml

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@ jobs:
2727
- arch: x86_64
2828
gcc: /usr/bin/x86_64-linux-gnu-gcc
2929
packages: gcc-x86-64-linux-gnu
30-
30+
outputs:
31+
size-aarch64-basic: ${{ steps.basic.outputs.size_aarch64 }}
32+
size-aarch64-full: ${{ steps.full.outputs.size_aarch64 }}
33+
size-arm-basic: ${{ steps.basic.outputs.size_arm }}
34+
size-arm-full: ${{ steps.full.outputs.size_arm }}
35+
size-mips-basic: ${{ steps.basic.outputs.size_mips }}
36+
size-mips-full: ${{ steps.full.outputs.size_mips }}
37+
size-x86_64-basic: ${{ steps.basic.outputs.size_x86_64 }}
38+
size-x86_64-full: ${{ steps.full.outputs.size_x86_64 }}
3139
steps:
3240
- name: Checkout uci
3341
uses: actions/checkout@v5
@@ -56,7 +64,6 @@ jobs:
5664
working-directory: depends/json-c
5765
run: |
5866
cmake \
59-
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
6067
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
6168
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
6269
-DBUILD_SHARED_LIBS=OFF -DDISABLE_EXTRA_LIBS=ON \
@@ -79,7 +86,6 @@ jobs:
7986
working-directory: depends/libubox
8087
run: |
8188
cmake \
82-
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
8389
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
8490
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
8591
-DBUILD_LUA=ON -DBUILD_EXAMPLES=OFF \
@@ -88,23 +94,59 @@ jobs:
8894
make
8995
make install
9096
91-
- name: Build ubus (basic)
97+
- id: basic
98+
name: Build ubus (basic)
99+
env:
100+
BUILD_DIR: build/ubus-basic
92101
run: |
93102
cmake \
94-
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
95103
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
96104
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
97105
-DBUILD_LUA=OFF -DBUILD_EXAMPLES=OFF \
98-
-B build/ubus-basic
99-
make -C build/ubus-basic
106+
-B $BUILD_DIR
107+
make -C $BUILD_DIR
108+
echo "size_${{ matrix.arch }}=$( find $BUILD_DIR -type f -name ubus -printf '%s' )" >> $GITHUB_OUTPUT
100109
101-
- name: Build ubus (full)
110+
- id: full
111+
name: Build ubus (full)
112+
env:
113+
BUILD_DIR: build/ubus-full
102114
run: |
103115
cmake \
104-
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
105116
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
106117
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
107118
-DBUILD_LUA=ON -DBUILD_EXAMPLES=ON \
108119
-DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua \
109-
-B build/ubus-full
110-
make -C build/ubus-full
120+
-B $BUILD_DIR
121+
make -C $BUILD_DIR
122+
echo "size_${{ matrix.arch }}=$( find $BUILD_DIR -type f -name ubus -printf '%s' )" >> $GITHUB_OUTPUT
123+
124+
- name: Upload binaries
125+
uses: actions/upload-artifact@v4
126+
with:
127+
name: ubus-${{ matrix.arch }}-binaries
128+
path: |
129+
build/ubus-*/ubus
130+
if-no-files-found: error
131+
132+
summary:
133+
name: Sizes
134+
needs: [build]
135+
runs-on: ubuntu-latest
136+
steps:
137+
- name: Sizes summary
138+
env:
139+
size_aarch64_basic: ${{needs.build.outputs.size-aarch64-basic}}
140+
size_aarch64_full: ${{needs.build.outputs.size-aarch64-full}}
141+
size_arm_basic: ${{needs.build.outputs.size-arm-basic}}
142+
size_arm_full: ${{needs.build.outputs.size-arm-full}}
143+
size_mips_basic: ${{needs.build.outputs.size-mips-basic}}
144+
size_mips_full: ${{needs.build.outputs.size-mips-full}}
145+
size_x86_64_basic: ${{needs.build.outputs.size-x86_64-basic}}
146+
size_x86_64_full: ${{needs.build.outputs.size-x86_64-full}}
147+
run: |
148+
echo "### ${GITHUB_WORKFLOW} sizes :floppy_disk:" >> $GITHUB_STEP_SUMMARY
149+
echo "| Variant | aarch64 | arm | mips | x86_64 |" >> $GITHUB_STEP_SUMMARY
150+
echo "| :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY
151+
echo "| basic | ${size_aarch64_basic} | ${size_arm_basic} | ${size_mips_basic} | ${size_x86_64_basic} |" >> $GITHUB_STEP_SUMMARY
152+
echo "| full | ${size_aarch64_full} | ${size_arm_full} | ${size_mips_full} | ${size_x86_64_full} |" >> $GITHUB_STEP_SUMMARY

.github/workflows/formal.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Test Formalities
2+
3+
on:
4+
pull_request:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
build:
11+
name: Test Formalities
12+
uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/sh
2+
3+
color_out() {
4+
printf "\e[0;$1m%s\e[0;0m\n" "$2"
5+
}
6+
7+
success() {
8+
color_out 32 "$1"
9+
}
10+
11+
info() {
12+
color_out 36 "$1"
13+
}
14+
15+
err() {
16+
color_out 31 "$1"
17+
}
18+
19+
warn() {
20+
color_out 33 "$1"
21+
}
22+
23+
err_die() {
24+
err "$1"
25+
exit 1
26+
}

0 commit comments

Comments
 (0)