summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas2025-10-19 14:14:44 +0000
committerÁlvaro Fernández Rojas2025-10-19 19:51:06 +0000
commit2e46a7405f26ec131918c821c30ac0b26fdb22f0 (patch)
tree7cfb95ab1405c5b0572d1d62d801b3ab15bf7e4d
parent57c1e8cd2c051d755ca861a9ab38a8049d2e3f95 (diff)
downloaduci-2e46a7405f26ec131918c821c30ac0b26fdb22f0.tar.gz
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 <noltari@gmail.com>
-rw-r--r--.github/workflows/ci.yml64
-rw-r--r--.github/workflows/formal.yml12
-rw-r--r--.github/workflows/scripts/ci_helpers.sh26
3 files changed, 91 insertions, 11 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 05b4422..d62a44e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -27,7 +27,15 @@ jobs:
- arch: x86_64
gcc: /usr/bin/x86_64-linux-gnu-gcc
packages: gcc-x86-64-linux-gnu
-
+ outputs:
+ size-aarch64-basic: ${{ steps.basic.outputs.size_aarch64 }}
+ size-aarch64-full: ${{ steps.full.outputs.size_aarch64 }}
+ size-arm-basic: ${{ steps.basic.outputs.size_arm }}
+ size-arm-full: ${{ steps.full.outputs.size_arm }}
+ size-mips-basic: ${{ steps.basic.outputs.size_mips }}
+ size-mips-full: ${{ steps.full.outputs.size_mips }}
+ size-x86_64-basic: ${{ steps.basic.outputs.size_x86_64 }}
+ size-x86_64-full: ${{ steps.full.outputs.size_x86_64 }}
steps:
- name: Checkout uci
uses: actions/checkout@v5
@@ -56,7 +64,6 @@ jobs:
working-directory: depends/json-c
run: |
cmake \
- -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
-DBUILD_SHARED_LIBS=OFF -DDISABLE_EXTRA_LIBS=ON \
@@ -79,7 +86,6 @@ jobs:
working-directory: depends/libubox
run: |
cmake \
- -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
-DBUILD_LUA=ON -DBUILD_EXAMPLES=OFF \
@@ -88,23 +94,59 @@ jobs:
make
make install
- - name: Build uci (basic)
+ - id: basic
+ name: Build uci (basic)
+ env:
+ BUILD_DIR: build/uci-basic
run: |
cmake \
- -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
-DBUILD_LUA=OFF \
- -B build/uci-basic
- make -C build/uci-basic
+ -B $BUILD_DIR
+ make -C $BUILD_DIR
+ echo "size_${{ matrix.arch }}=$( find $BUILD_DIR -type f -name uci -printf '%s' )" >> $GITHUB_OUTPUT
- - name: Build uci (full)
+ - id: full
+ name: Build uci (full)
+ env:
+ BUILD_DIR: build/uci-full
run: |
cmake \
- -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \
-DCMAKE_C_COMPILER=${{ matrix.gcc }} \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
-DBUILD_LUA=ON \
-DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua \
- -B build/uci-full
- make -C build/uci-full
+ -B $BUILD_DIR
+ make -C $BUILD_DIR
+ echo "size_${{ matrix.arch }}=$( find $BUILD_DIR -type f -name uci -printf '%s' )" >> $GITHUB_OUTPUT
+
+ - name: Upload binaries
+ uses: actions/upload-artifact@v4
+ with:
+ name: uci-${{ matrix.arch }}-binaries
+ path: |
+ build/uci-*/uci
+ if-no-files-found: error
+
+ summary:
+ name: Sizes
+ needs: [build]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Sizes summary
+ env:
+ size_aarch64_basic: ${{needs.build.outputs.size-aarch64-basic}}
+ size_aarch64_full: ${{needs.build.outputs.size-aarch64-full}}
+ size_arm_basic: ${{needs.build.outputs.size-arm-basic}}
+ size_arm_full: ${{needs.build.outputs.size-arm-full}}
+ size_mips_basic: ${{needs.build.outputs.size-mips-basic}}
+ size_mips_full: ${{needs.build.outputs.size-mips-full}}
+ size_x86_64_basic: ${{needs.build.outputs.size-x86_64-basic}}
+ size_x86_64_full: ${{needs.build.outputs.size-x86_64-full}}
+ run: |
+ echo "### ${GITHUB_WORKFLOW} sizes :floppy_disk:" >> $GITHUB_STEP_SUMMARY
+ echo "| Variant | aarch64 | arm | mips | x86_64 |" >> $GITHUB_STEP_SUMMARY
+ echo "| :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY
+ echo "| basic | ${size_aarch64_basic} | ${size_arm_basic} | ${size_mips_basic} | ${size_x86_64_basic} |" >> $GITHUB_STEP_SUMMARY
+ echo "| full | ${size_aarch64_full} | ${size_arm_full} | ${size_mips_full} | ${size_x86_64_full} |" >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/formal.yml b/.github/workflows/formal.yml
new file mode 100644
index 0000000..081129d
--- /dev/null
+++ b/.github/workflows/formal.yml
@@ -0,0 +1,12 @@
+name: Test Formalities
+
+on:
+ pull_request:
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ name: Test Formalities
+ uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main
diff --git a/.github/workflows/scripts/ci_helpers.sh b/.github/workflows/scripts/ci_helpers.sh
new file mode 100644
index 0000000..2f9daf8
--- /dev/null
+++ b/.github/workflows/scripts/ci_helpers.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+color_out() {
+ printf "\e[0;$1m%s\e[0;0m\n" "$2"
+}
+
+success() {
+ color_out 32 "$1"
+}
+
+info() {
+ color_out 36 "$1"
+}
+
+err() {
+ color_out 31 "$1"
+}
+
+warn() {
+ color_out 33 "$1"
+}
+
+err_die() {
+ err "$1"
+ exit 1
+}