mirror of
https://github.com/opencardev/aasdk.git
synced 2024-07-03 09:06:55 +02:00
added dockerbuild temp
This commit is contained in:
parent
2d48d7cb45
commit
d25b363b0e
37
.github/workflows/build_compile.yml
vendored
Normal file
37
.github/workflows/build_compile.yml
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
name: Build and test with docker
|
||||||
|
|
||||||
|
on: [ push, pull_request ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-image:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Build the Docker image
|
||||||
|
run: docker build -t aasdk_builder --file Dockerfile .
|
||||||
|
compile:
|
||||||
|
runs-on: ${{ matrix.host }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
max-parallel: 3
|
||||||
|
matrix:
|
||||||
|
host: [
|
||||||
|
"ubuntu-latest",
|
||||||
|
#"macos-10.15",
|
||||||
|
]
|
||||||
|
config:
|
||||||
|
- {
|
||||||
|
name: "armhf Release",
|
||||||
|
arch: "armhf",
|
||||||
|
type: "release"
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "amd64 Release",
|
||||||
|
arch: "amd64",
|
||||||
|
type: "release"
|
||||||
|
}
|
||||||
|
name: 'Upload release: ${{ matrix.config.name }}'
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: 'Build ${{ matrix.config.arch }} Debian package'
|
||||||
|
run: docker run -v "${PWD}/release":/${{ matrix.config.type }} aasdk_builder:latest ${{ matrix.config.arch }}
|
|
@ -1,8 +1,20 @@
|
||||||
cmake_minimum_required(VERSION 3.5.1)
|
cmake_minimum_required(VERSION 3.5.1)
|
||||||
|
|
||||||
|
if( TARGET_ARCH STREQUAL "amd64" )
|
||||||
|
message("Building for amd64")
|
||||||
|
elseif( TARGET_ARCH STREQUAL "armhf" )
|
||||||
|
message("Building for armhf")
|
||||||
|
set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc-8)
|
||||||
|
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++-8)
|
||||||
|
else()
|
||||||
|
message("Unknown target architecture. Exiting")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
set (aasdk_VERSION_MAJOR 2)
|
set (aasdk_VERSION_MAJOR 2)
|
||||||
set (aasdk_VERSION_MINOR 1)
|
set (aasdk_VERSION_MINOR 1)
|
||||||
set (aasdk_VERSION_PATCH 0)
|
set (aasdk_VERSION_PATCH 0)
|
||||||
|
|
||||||
project(aasdk
|
project(aasdk
|
||||||
VERSION ${aasdk_VERSION_MAJOR}.${aasdk_VERSION_MINOR}.${aasdk_VERSION_PATCH}
|
VERSION ${aasdk_VERSION_MAJOR}.${aasdk_VERSION_MINOR}.${aasdk_VERSION_PATCH}
|
||||||
LANGUAGES CXX)
|
LANGUAGES CXX)
|
||||||
|
|
28
buildenv/Dockerfile
Normal file
28
buildenv/Dockerfile
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
FROM debian:buster AS aasdk
|
||||||
|
|
||||||
|
RUN dpkg --add-architecture armhf
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install cmake build-essential git
|
||||||
|
RUN apt-get -y install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf g++-arm-linux-gnueabihf protobuf-compiler
|
||||||
|
RUN apt-get -y install gcc-8-base:armhf libc6:armhf libgcc1:armhf libicu63:armhf libidn2-0:armhf libstdc++6:armhf libunistring2:armhf
|
||||||
|
|
||||||
|
# These are all the libboost requirements. It would be shorter if libboost-log-dev wasn't a disaster that's being dealt with manually.
|
||||||
|
RUN apt-get install -y libprotobuf-dev libusb-1.0.0-dev libssl-dev libboost-dev libboost-system-dev libboost-atomic1.67.0 libboost-chrono1.67.0 libboost-date-time1.67.0 libboost-filesystem1.67.0 libboost-regex1.67.0 libboost-thread1.67.0 libboost-filesystem1.67-dev libboost-thread1.67-dev libboost-date-time1.67-dev
|
||||||
|
RUN apt-get install -y libprotobuf-dev:armhf libusb-1.0.0-dev:armhf libssl-dev:armhf libboost-dev:armhf libboost-system-dev:armhf libboost-atomic1.67.0:armhf libboost-chrono1.67.0:armhf libboost-date-time1.67.0:armhf libboost-filesystem1.67.0:armhf libboost-regex1.67.0:armhf libboost-system1.67.0:armhf libboost-thread1.67.0:armhf libboost-filesystem1.67-dev:armhf libboost-thread1.67-dev:armhf libboost-date-time1.67-dev:armhf
|
||||||
|
|
||||||
|
COPY ../ /src
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
# Import resources
|
||||||
|
COPY ./patch-libboost-log-deb.sh /src/resources
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
# Patch libboost-log-dev and install
|
||||||
|
RUN chmod +x ./resources/patch-libboost-log-deb.sh
|
||||||
|
RUN ./resources/patch-libboost-log-deb.sh
|
||||||
|
|
||||||
|
# Make Executable
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
|
28
buildenv/entrypoint.sh
Normal file
28
buildenv/entrypoint.sh
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ARCH=$1
|
||||||
|
MAJORVER=0
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]
|
||||||
|
then
|
||||||
|
echo "Please supply a target architecture to build"
|
||||||
|
echo "Choose from 'amd64', 'armhf'"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
if [ "$ARCH" != "amd64" ] && [ "$ARCH" != "armhf" ]
|
||||||
|
then
|
||||||
|
echo "Invalid architecture requested"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Now building within docker for $ARCH"
|
||||||
|
|
||||||
|
# Clear out the /build directory
|
||||||
|
mkdir build;
|
||||||
|
cd build;
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DTARGET_ARCH=$ARCH ../
|
||||||
|
make -j4
|
||||||
|
cpack --config CPackConfig.cmake
|
||||||
|
|
||||||
|
# Move it to release
|
||||||
|
mv *.deb /release/
|
46
buildenv/patch-libboost-log-deb.sh
Normal file
46
buildenv/patch-libboost-log-deb.sh
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# All this because of a packaging bug in libboost-log-dev
|
||||||
|
# 'Multi-Arch: same' is not present in the control file of Debian packages, all the way up to Sid
|
||||||
|
# Rather than recompiling the parent libbost suite, download the 6 packages, extract, edit, and repackage.
|
||||||
|
|
||||||
|
# https://bugs.debian.org/cgi-bin/pkgreport.cgi?package=libboost-log-dev
|
||||||
|
|
||||||
|
apt-get -y install --download-only libboost-log-dev:amd64 libboost-log1.67.0:amd64 libboost-log1.67-dev:amd64
|
||||||
|
apt-get -y install --download-only libboost-log-dev:armhf libboost-log1.67.0:armhf libboost-log1.67-dev:armhf
|
||||||
|
|
||||||
|
mkdir -p /tmp/armhf/libboost-log-dev/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log-dev_1.67.0.1_armhf.deb /tmp/armhf/libboost-log-dev/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log-dev_1.67.0.1_armhf.deb /tmp/armhf/libboost-log-dev/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/armhf/libboost-log-dev/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/armhf/libboost-log-dev/ /tmp/libboost-log-dev_1.67.0.1_armhf.deb
|
||||||
|
|
||||||
|
mkdir -p /tmp/amd64/libboost-log-dev/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log-dev_1.67.0.1_amd64.deb /tmp/amd64/libboost-log-dev/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log-dev_1.67.0.1_amd64.deb /tmp/amd64/libboost-log-dev/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/amd64/libboost-log-dev/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/amd64/libboost-log-dev/ /tmp/libboost-log-dev_1.67.0.1_amd64.deb
|
||||||
|
|
||||||
|
mkdir -p /tmp/armhf/libboost-log1.67-dev/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log1.67-dev_1.67.0-13+deb10u1_armhf.deb /tmp/armhf/libboost-log1.67-dev/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log1.67-dev_1.67.0-13+deb10u1_armhf.deb /tmp/armhf/libboost-log1.67-dev/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/armhf/libboost-log1.67-dev/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/armhf/libboost-log1.67-dev/ /tmp/libboost-log1.67-dev_1.67.0-13+deb10u1_armhf.deb
|
||||||
|
|
||||||
|
mkdir -p /tmp/amd64/libboost-log1.67-dev/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log1.67-dev_1.67.0-13+deb10u1_amd64.deb /tmp/amd64/libboost-log1.67-dev/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log1.67-dev_1.67.0-13+deb10u1_amd64.deb /tmp/amd64/libboost-log1.67-dev/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/amd64/libboost-log1.67-dev/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/amd64/libboost-log1.67-dev/ /tmp/libboost-log1.67-dev_1.67.0-13+deb10u1_amd64.deb
|
||||||
|
|
||||||
|
mkdir -p /tmp/armhf/libboost-log1.67.0/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log1.67.0_1.67.0-13+deb10u1_armhf.deb /tmp/armhf/libboost-log1.67.0/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log1.67.0_1.67.0-13+deb10u1_armhf.deb /tmp/armhf/libboost-log1.67.0/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/armhf/libboost-log1.67.0/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/armhf/libboost-log1.67.0/ /tmp/libboost-log1.67.0_1.67.0-13+deb10u1_armhf.deb
|
||||||
|
|
||||||
|
mkdir -p /tmp/amd64/libboost-log1.67.0/
|
||||||
|
dpkg-deb -x /var/cache/apt/archives/libboost-log1.67.0_1.67.0-13+deb10u1_amd64.deb /tmp/amd64/libboost-log1.67.0/
|
||||||
|
dpkg-deb -e /var/cache/apt/archives/libboost-log1.67.0_1.67.0-13+deb10u1_amd64.deb /tmp/amd64/libboost-log1.67.0/DEBIAN/
|
||||||
|
sed -i '/^Priority: optional/a Multi-Arch: same' /tmp/amd64/libboost-log1.67.0/DEBIAN/control
|
||||||
|
dpkg-deb -b /tmp/amd64/libboost-log1.67.0/ /tmp/libboost-log1.67.0_1.67.0-13+deb10u1_amd64.deb
|
||||||
|
|
||||||
|
dpkg -i /tmp/libboost*.deb
|
Loading…
Reference in a new issue