202 lines
6.9 KiB
YAML
202 lines
6.9 KiB
YAML
name: Dockcross CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "*"
|
|
paths-ignore:
|
|
- "**.md"
|
|
pull_request:
|
|
branches:
|
|
- "*"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: dockcross ${{ matrix.dockcross.image_name }} ${{ matrix.build_type }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
dockcross:
|
|
# Android images
|
|
- { image_name: android-arm, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- { image_name: android-arm64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- { image_name: android-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- { image_name: android-x86_64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Web images
|
|
- { image_name: web-wasm, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
# - {
|
|
# image_name: web-wasi,
|
|
# cmake_arg: "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS} -fno-exceptions'",
|
|
# }
|
|
|
|
# Linux ARMv5 images
|
|
- { image_name: linux-armv5, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-armv5-musl,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Linux ARMv6 images
|
|
- { image_name: linux-armv6, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-armv6-lts,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: linux-armv6-musl,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# linux ARMv7 images
|
|
- { image_name: linux-armv7, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-armv7-lts,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- { image_name: linux-armv7a, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-armv7l-musl,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Linux ARMv8 (64 bit) images
|
|
- { image_name: linux-arm64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-arm64-lts,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: linux-arm64-full,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: linux-arm64-musl,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Linux x86 images
|
|
- { image_name: linux-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- { image_name: linux-x64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- {
|
|
image_name: linux-x64-clang,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: linux-x64-tinycc,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: linux-x86_64-full,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Linux s390 images
|
|
- { image_name: linux-s390x, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Linux mips images
|
|
- { image_name: linux-mips, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Linux PowerPC 64 images
|
|
- { image_name: linux-ppc64le, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Linux xtensa images
|
|
# - {
|
|
# image_name: linux-xtensa-uclibc,
|
|
# cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
# }
|
|
|
|
# Linux riscv images
|
|
- { image_name: linux-riscv32, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
- { image_name: linux-riscv64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Linux m68k images
|
|
# - {
|
|
# image_name: linux-m68k-uclibc,
|
|
# cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
# }
|
|
|
|
# ManyLinux images
|
|
- { image_name: manylinux1-x64, cmake_arg: "-DCMAKE_CXX_STANDARD=14" }
|
|
- { image_name: manylinux1-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=14" }
|
|
- {
|
|
image_name: manylinux2010-x86,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: manylinux2010-x64,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: manylinux2014-x86,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: manylinux2014-x64,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
# - { image_name: manylinux2014-aarch64, cmake_arg: "-DCMAKE_CXX_STANDARD=17" }
|
|
|
|
# Windows x86 images
|
|
- {
|
|
image_name: windows-static-x64,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-static-x64-posix,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-static-x86,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-shared-x64,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-shared-x64-posix,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-shared-x86,
|
|
cmake_arg: "-DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Windows ARM images
|
|
- {
|
|
image_name: windows-armv7,
|
|
cmake_arg: "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
- {
|
|
image_name: windows-arm64,
|
|
cmake_arg: "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_CXX_STANDARD=17",
|
|
}
|
|
|
|
# Disable MinSizeRel RelWithDebInfo, Release, Debug
|
|
build_type: [RelWithDebInfo]
|
|
steps:
|
|
- name: "Checkout Code"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: "recursive"
|
|
fetch-depth: 0
|
|
|
|
- name: "Pull docker image: dockcross/${{ matrix.dockcross.image_name }}"
|
|
run: docker pull dockcross/${{ matrix.dockcross.image_name }}:latest
|
|
|
|
- name: "Make dockcross script: dockcross-${{ matrix.dockcross.image_name }}"
|
|
run: |
|
|
docker run --rm dockcross/${{ matrix.dockcross.image_name }} > ./dockcross-${{ matrix.dockcross.image_name }}
|
|
chmod +x ./dockcross-${{ matrix.dockcross.image_name }}
|
|
|
|
- name: "Config CMake build"
|
|
run: |
|
|
./dockcross-${{ matrix.dockcross.image_name }} cmake -B build-${{ matrix.dockcross.image_name }} -S . \
|
|
-G Ninja -DFMT_DOC=OFF -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.dockcross.cmake_arg }}
|
|
|
|
- name: "Build"
|
|
run: ./dockcross-${{ matrix.dockcross.image_name }} ninja -C build-${{ matrix.dockcross.image_name }}
|