From 530144791ee0db7df544c845611c2fba2910582d Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Fri, 8 Oct 2021 23:15:25 -1000 Subject: [PATCH] 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 --- .github/workflows/build.yml | 71 +++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/build.yml 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/ -- 2.30.2