+++ /dev/null
-#!/bin/sh
-
-mkdir -p /var/lock/
-
-opkg update
-
-[ -n "$CI_HELPER" ] || CI_HELPER="/ci/.github/workflows/ci_helpers.sh"
-
-for PKG in /ci/*.ipk; do
- tar -xzOf "$PKG" ./control.tar.gz | tar xzf - ./control
- # package name including variant
- PKG_NAME=$(sed -ne 's#^Package: \(.*\)$#\1#p' ./control)
- # package version without release
- PKG_VERSION=$(sed -ne 's#^Version: \(.*\)-[0-9]*$#\1#p' ./control)
- # package source contianing test.sh script
- PKG_SOURCE=$(sed -ne 's#^Source: .*/\(.*\)$#\1#p' ./control)
-
- echo "Testing package $PKG_NAME in version $PKG_VERSION from $PKG_SOURCE"
-
- opkg install "$PKG"
-
- export PKG_NAME PKG_VERSION CI_HELPER
-
- TEST_SCRIPT=$(find /ci/ -name "$PKG_SOURCE" -type d)/test.sh
-
- if [ -f "$TEST_SCRIPT" ]; then
- echo "Use package specific test.sh"
- if sh "$TEST_SCRIPT" "$PKG_NAME" "$PKG_VERSION"; then
- echo "Test successful"
- else
- echo "Test failed"
- exit 1
- fi
- else
- echo "No test.sh script available"
- fi
-
- opkg remove "$PKG_NAME" --force-removal-of-dependent-packages --force-remove
-done
-name: Test Build
+name: Feeds Package Test Build
on:
pull_request:
jobs:
build:
- name: Test ${{ matrix.arch }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- include:
- - arch: arc_archs
- target: archs38-generic
- runtime_test: false
-
- - arch: arm_cortex-a9_vfpv3-d16
- target: mvebu-cortexa9
- runtime_test: false
-
- - arch: mips_24kc
- target: ath79-generic
- runtime_test: false
-
- - arch: powerpc_464fp
- target: apm821xx-nand
- runtime_test: false
-
- - arch: powerpc_8540
- target: mpc85xx-p1010
- runtime_test: false
-
- - arch: aarch64_cortex-a53
- target: mvebu-cortexa53
- runtime_test: true
-
- - arch: arm_cortex-a15_neon-vfpv4
- target: armvirt-32
- runtime_test: true
-
- - arch: i386_pentium-mmx
- target: x86-geode
- runtime_test: true
-
- - arch: x86_64
- target: x86-64
- runtime_test: true
-
- 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:-vim attendedsysupgrade-common bmon}"
-
- echo "Building $PACKAGES"
- echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
-
- - name: Build
- uses: openwrt/gh-action-sdk@v1
- 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/
-
- - name: Remove logs
- run: sudo rm -rf logs/ || true
-
- - name: Register QEMU
- if: ${{ matrix.runtime_test }}
- run: |
- sudo docker run --rm --privileged aptman/qus -s -- -p
-
- - name: Build Docker container
- if: ${{ matrix.runtime_test }}
- run: |
- docker build -t test-container --build-arg ARCH .github/workflows/
- env:
- ARCH: ${{ matrix.arch }}
-
- - name: Test via Docker container
- if: ${{ matrix.runtime_test }}
- run: |
- docker run --rm -v $GITHUB_WORKSPACE:/ci test-container
+ name: Feeds Package Test Build
+ uses: openwrt/actions-shared-workflows/.github/workflows/multi-arch-test-build.yml@main