--- /dev/null
+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/