diff options
author | Paul Spooren <mail@aparcar.org> | 2021-10-08 23:15:25 -1000 |
---|---|---|
committer | Paul Spooren <mail@aparcar.org> | 2021-10-09 22:50:56 -1000 |
commit | 530144791ee0db7df544c845611c2fba2910582d (patch) | |
tree | a1a2c5c8da29a29d38fed270fbd5519b1582c75b | |
parent | 9987b39569685f9d51080e46c860e553185506dd (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.yml | 71 |
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/ |