haproxy/.github/workflows/cross-zoo.yml
Ilya Shipitsin e3af7f832c CI: skip scheduled builds on forks
tracking bleeding edge changes with some rare platforms or modern
compilers on scheduled basis is not what usually forks do. let's
skip by default in forks, if some fork is interested, it might be
enabled locally
2024-03-05 11:50:34 +01:00

112 lines
3.3 KiB
YAML

#
# this is naamed "zoo" after OpenSSL "cross zoo pipeline"
#
name: Cross Compile
on:
schedule:
- cron: "0 0 21 * *"
permissions:
contents: read
jobs:
cross-compilation:
strategy:
matrix:
platform: [
{
arch: aarch64-linux-gnu,
libs: libc6-dev-arm64-cross,
target: linux-aarch64
}, {
arch: alpha-linux-gnu,
libs: libc6.1-dev-alpha-cross,
target: linux-alpha-gcc
}, {
arch: arm-linux-gnueabi,
libs: libc6-dev-armel-cross,
target: linux-armv4
}, {
arch: arm-linux-gnueabihf,
libs: libc6-dev-armhf-cross,
target: linux-armv4
}, {
arch: hppa-linux-gnu,
libs: libc6-dev-hppa-cross,
target: -static linux-generic32
}, {
arch: m68k-linux-gnu,
libs: libc6-dev-m68k-cross,
target: -static -m68040 linux-latomic
}, {
arch: mips-linux-gnu,
libs: libc6-dev-mips-cross,
target: -static linux-mips32
}, {
arch: mips64-linux-gnuabi64,
libs: libc6-dev-mips64-cross,
target: -static linux64-mips64
}, {
arch: mipsel-linux-gnu,
libs: libc6-dev-mipsel-cross,
target: linux-mips32
}, {
arch: powerpc64le-linux-gnu,
libs: libc6-dev-ppc64el-cross,
target: linux-ppc64le
}, {
arch: riscv64-linux-gnu,
libs: libc6-dev-riscv64-cross,
target: linux64-riscv64
}, {
arch: s390x-linux-gnu,
libs: libc6-dev-s390x-cross,
target: linux64-s390x
}, {
arch: sh4-linux-gnu,
libs: libc6-dev-sh4-cross,
target: no-async linux-latomic
}, {
arch: hppa-linux-gnu,
libs: libc6-dev-hppa-cross,
target: linux-generic32,
}, {
arch: m68k-linux-gnu,
libs: libc6-dev-m68k-cross,
target: -mcfv4e linux-latomic
}, {
arch: mips-linux-gnu,
libs: libc6-dev-mips-cross,
target: linux-mips32
}, {
arch: mips64-linux-gnuabi64,
libs: libc6-dev-mips64-cross,
target: linux64-mips64
}, {
arch: sparc64-linux-gnu,
libs: libc6-dev-sparc64-cross,
target: linux64-sparcv9
}
]
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'haproxy' }}
steps:
- name: install packages
run: |
sudo apt-get update
sudo apt-get -yq --force-yes install \
gcc-${{ matrix.platform.arch }} \
${{ matrix.platform.libs }}
- uses: actions/checkout@v4
- name: install quictls
run: |
QUICTLS_EXTRA_ARGS="--cross-compile-prefix=${{ matrix.platform.arch }}- ${{ matrix.platform.target }}" QUICTLS=yes scripts/build-ssl.sh
- name: Build
run: |
make ERR=1 CC=${{ matrix.platform.arch }}-gcc TARGET=linux-glibc USE_LIBCRYPT= USE_OPENSSL=1 USE_QUIC=1 USE_PROMEX=1 SSL_LIB=${HOME}/opt/lib SSL_INC=${HOME}/opt/include ADDLIB="-Wl,-rpath,${HOME}/opt/lib"