Add dockcross builder in CI

Add dockcross builder in CI

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
This commit is contained in:
Bensuperpc 2021-11-02 14:54:21 +01:00
parent 812733cc96
commit 43c93fb9bc
2 changed files with 203 additions and 0 deletions

201
.github/workflows/dockcross.yml vendored Normal file
View File

@ -0,0 +1,201 @@
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 }}

2
.gitignore vendored
View File

@ -35,3 +35,5 @@ FMT.build
Makefile
run-msbuild.bat
fmt.pc
dockcross-*
build-*