|
|
- name: Test Build
-
- on:
- pull_request:
-
- jobs:
- build:
- name: Test ${{ matrix.arch }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- arch:
- - arc_archs
- - arm_cortex-a9_vfpv3-d16
- - mips_24kc
- - powerpc_464fp
- - powerpc_8540
- runtime_test: [false]
- include:
- - arch: aarch64_cortex-a53
- runtime_test: true
- - arch: arm_cortex-a15_neon-vfpv4
- runtime_test: true
- - arch: i386_pentium-mmx
- runtime_test: true
- - arch: 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 tmux 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
|