summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorPaul Spooren <mail@aparcar.org>2021-10-08 23:15:25 -1000
committerPaul Spooren <mail@aparcar.org>2021-10-09 22:50:56 -1000
commit530144791ee0db7df544c845611c2fba2910582d (patch)
treea1a2c5c8da29a29d38fed270fbd5519b1582c75b
parent9987b39569685f9d51080e46c860e553185506dd (diff)
CI: test build LuCI packages
While all LuCI packages should always build fine, this allows others to directly install those packages within test setups. Signed-off-by: Paul Spooren <mail@aparcar.org>
-rw-r--r--.github/workflows/build.yml71
1 files changed, 71 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..5d3aa67a8d
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,71 @@
+name: Test Build
+
+on:
+ pull_request:
+
+jobs:
+ build:
+ name: Test ${{ matrix.arch }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - arch: x86_64
+ target: x86-64
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Determine branch name
+ run: |
+ BRANCH="${GITHUB_BASE_REF#refs/heads/}"
+ echo "Building for $BRANCH"
+ echo "BRANCH=$BRANCH" >> $GITHUB_ENV
+
+ - name: Determine changed packages
+ run: |
+ # only detect packages with changes
+ PKG_ROOTS=$(find . -name Makefile | \
+ grep -v ".*/src/Makefile" | \
+ sed -e 's@./\(.*\)/Makefile@\1/@')
+ CHANGES=$(git diff --diff-filter=d --name-only origin/$BRANCH)
+
+ for ROOT in $PKG_ROOTS; do
+ for CHANGE in $CHANGES; do
+ if [[ "$CHANGE" == "$ROOT"* ]]; then
+ PACKAGES+=$(echo "$ROOT" | sed -e 's@.*/\(.*\)/@\1 @')
+ break
+ fi
+ done
+ done
+
+ # fallback to test packages if nothing explicitly changes this is
+ # should run if other mechanics in packages.git changed
+ PACKAGES="${PACKAGES:-luci-app-attendedsysupgrade}"
+
+ echo "Building $PACKAGES"
+ echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
+
+ - name: Build
+ uses: openwrt/gh-action-sdk@v3
+ env:
+ ARCH: ${{ matrix.arch }}-${{ env.BRANCH }}
+ FEEDNAME: packages_ci
+
+ - name: Move created packages to project dir
+ run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.ipk . || true
+
+ - name: Store packages
+ uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.arch}}-packages
+ path: "*.ipk"
+
+ - name: Store logs
+ uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.arch}}-logs
+ path: logs/