ci: add OpenWrt SDK based CI jobs
This allows testing some more exotic architectures and libcs. Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
This commit is contained in:
parent
9b1cf2bc69
commit
5f7c4093e2
4 changed files with 72 additions and 1 deletions
4
.github/workflows/cibuild-setup-ubuntu.sh
vendored
4
.github/workflows/cibuild-setup-ubuntu.sh
vendored
|
@ -58,7 +58,9 @@ bash -c "echo 'deb-src http://archive.ubuntu.com/ubuntu/ $RELEASE main restricte
|
||||||
# cov-build fails to compile util-linux when CC is set to gcc-*
|
# cov-build fails to compile util-linux when CC is set to gcc-*
|
||||||
# so let's just install and use the default compiler
|
# so let's just install and use the default compiler
|
||||||
if [[ "$COMPILER_VERSION" == "" ]]; then
|
if [[ "$COMPILER_VERSION" == "" ]]; then
|
||||||
PACKAGES+=("$COMPILER")
|
if [[ "$COMPILER" != "none" ]]; then
|
||||||
|
PACKAGES+=("$COMPILER")
|
||||||
|
fi
|
||||||
elif [[ "$COMPILER" == clang ]]; then
|
elif [[ "$COMPILER" == clang ]]; then
|
||||||
# Latest LLVM stack deb packages provided by https://apt.llvm.org/
|
# Latest LLVM stack deb packages provided by https://apt.llvm.org/
|
||||||
# Following snippet was borrowed from https://apt.llvm.org/llvm.sh
|
# Following snippet was borrowed from https://apt.llvm.org/llvm.sh
|
||||||
|
|
4
.github/workflows/cibuild.sh
vendored
4
.github/workflows/cibuild.sh
vendored
|
@ -104,6 +104,10 @@ for phase in "${PHASES[@]}"; do
|
||||||
CXXFLAGS+=(-shared-libasan)
|
CXXFLAGS+=(-shared-libasan)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$HOST_TRIPLET" != "" ]]; then
|
||||||
|
opts+=(--host "$HOST_TRIPLET")
|
||||||
|
fi
|
||||||
|
|
||||||
git clean -xdf
|
git clean -xdf
|
||||||
|
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
|
|
48
.github/workflows/cibuild.yml
vendored
48
.github/workflows/cibuild.yml
vendored
|
@ -133,3 +133,51 @@ jobs:
|
||||||
.github/workflows/cibuild.sh CONFIGURE MAKE
|
.github/workflows/cibuild.sh CONFIGURE MAKE
|
||||||
# Check
|
# Check
|
||||||
.github/workflows/cibuild.sh CHECK
|
.github/workflows/cibuild.sh CHECK
|
||||||
|
build-openwrt:
|
||||||
|
name: build (openwrt, ${{ matrix.target }})
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- target: ipq40xx
|
||||||
|
subtarget: generic
|
||||||
|
abi: musl_eabi
|
||||||
|
- target: ath79
|
||||||
|
subtarget: generic
|
||||||
|
abi: musl
|
||||||
|
- target: bcm63xx
|
||||||
|
subtarget: generic
|
||||||
|
abi: musl
|
||||||
|
- target: mpc85xx
|
||||||
|
subtarget: p2020
|
||||||
|
abi: musl
|
||||||
|
- target: archs38
|
||||||
|
subtarget: generic
|
||||||
|
abi: glibc
|
||||||
|
env:
|
||||||
|
COMPILER: none
|
||||||
|
steps:
|
||||||
|
- name: Repository checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Ubuntu setup
|
||||||
|
run: sudo -E .github/workflows/cibuild-setup-ubuntu.sh
|
||||||
|
- name: OpenWrt environment
|
||||||
|
run: |
|
||||||
|
OPENWRT_RELEASE=22.03.5
|
||||||
|
OPENWRT_SDK=openwrt-sdk-$OPENWRT_RELEASE-${{ matrix.target }}-${{ matrix.subtarget }}_gcc-11.2.0_${{ matrix.abi }}.Linux-x86_64
|
||||||
|
echo "COMPILER=$COMPILER" >> $GITHUB_ENV
|
||||||
|
echo "OPENWRT_RELEASE=$OPENWRT_RELEASE" >> $GITHUB_ENV
|
||||||
|
echo "OPENWRT_SDK=$OPENWRT_SDK" >> $GITHUB_ENV
|
||||||
|
- name: Download toolchain
|
||||||
|
run: |
|
||||||
|
curl -o ~/${{ env.OPENWRT_SDK }}.tar.xz -C - https://downloads.cdn.openwrt.org/releases/${{ env.OPENWRT_RELEASE }}/targets/${{ matrix.target }}/${{ matrix.subtarget }}/${{ env.OPENWRT_SDK }}.tar.xz
|
||||||
|
tar xf ~/${{ env.OPENWRT_SDK }}.tar.xz -C ~
|
||||||
|
- name: Configure
|
||||||
|
run: |
|
||||||
|
source .github/workflows/openwrt-sdk-env.sh ~/${{ env.OPENWRT_SDK }}
|
||||||
|
.github/workflows/cibuild.sh CONFIGURE
|
||||||
|
- name: Make
|
||||||
|
run: |
|
||||||
|
source .github/workflows/openwrt-sdk-env.sh ~/${{ env.OPENWRT_SDK }}
|
||||||
|
.github/workflows/cibuild.sh MAKE
|
||||||
|
|
17
.github/workflows/openwrt-sdk-env.sh
vendored
Executable file
17
.github/workflows/openwrt-sdk-env.sh
vendored
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sdk="$(realpath $1)"
|
||||||
|
|
||||||
|
STAGING_DIR="$(echo "$sdk"/staging_dir/toolchain-*)"
|
||||||
|
|
||||||
|
. "$STAGING_DIR/info.mk"
|
||||||
|
|
||||||
|
PATH="$sdk/staging_dir/host/bin:$PATH"
|
||||||
|
CC="$STAGING_DIR/bin/${TARGET_CROSS}gcc"
|
||||||
|
BISON_PKGDATADIR="$sdk/staging_dir/host/share/bison"
|
||||||
|
M4="$sdk/staging_dir/host/bin/m4"
|
||||||
|
HOST_TRIPLET="$("$CC" -dumpmachine)"
|
||||||
|
|
||||||
|
echo "Building for $HOST_TRIPLET from $sdk"
|
||||||
|
|
||||||
|
export STAGING_DIR PATH CC BISON_PKGDATADIR M4 HOST_TRIPLET
|
Loading…
Add table
Add a link
Reference in a new issue