Skip to content

Commit

Permalink
feat:build for arm64
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaumeloftorbital committed Feb 23, 2024
1 parent 1c80c0f commit 0f9308f
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 47 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ jobs:
with:
fetch-depth: 0
lfs: true
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
Expand All @@ -52,4 +54,5 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
target: root-user
platforms: linux/amd64,linux/arm64
push: true
18 changes: 17 additions & 1 deletion .github/workflows/build-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,20 @@ jobs:
build-package-cpp:
name: Build C++ Package
runs-on: ubuntu-latest
strategy:
matrix:
architecture: [amd64, arm64]
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
if: matrix.architecture == 'arm64'
with:
platforms: arm64
- name: Login to DockerHub
uses: docker/login-action@v2
with:
Expand All @@ -41,7 +49,7 @@ jobs:
- name: Pull Development Image
run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
- name: Build C++ Package
run: make build-packages-cpp-standalone
run: make build-packages-cpp-standalone PLATFORM=${{ matrix.architecture }}
- name: Upload C++ Package
uses: actions/upload-artifact@v3
with:
Expand All @@ -51,12 +59,20 @@ jobs:
build-package-python:
name: Build Python Package
runs-on: ubuntu-latest
strategy:
matrix:
architecture: [amd64, arm64]
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
if: matrix.architecture == 'arm64'
with:
platforms: arm64
- name: Login to DockerHub
uses: docker/login-action@v2
with:
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Apache License 2.0

name: Build

on:
push:
branches:
- main
pull_request:


concurrency:
group: main-${{ github.ref }}
cancel-in-progress: true

env:
PROJECT_NAME: open-space-toolkit-base

jobs:
prepare-environment:
name: Prepare Environment Variables
runs-on: ubuntu-latest
outputs:
project_name: ${{ steps.project-name.outputs.value }}
project_version: ${{ steps.project-version.outputs.value }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- id: project-name
name: Get Project Name
run: |
echo "Project name: ${{ env.PROJECT_NAME }}"
echo "value=${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT
- id: project-version
name: Get Project Version
run: |
project_version=$(git describe --tags --always)
echo "Project version: ${project_version}"
echo "value=${project_version}" >> $GITHUB_OUTPUT
build-development-image:
name: Build Development Image
needs:
- prepare-environment
uses: ./.github/workflows/build-image.yml
with:
project_name: ${{ needs.prepare-environment.outputs.project_name }}
project_version: ${{ needs.prepare-environment.outputs.project_version }}
secrets: inherit
92 changes: 46 additions & 46 deletions docker/development/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Apache License 2.0

FROM ubuntu:20.04
FROM ubuntu:20.04 as root-user

LABEL maintainer="lucas.bremond@gmail.com"

Expand Down Expand Up @@ -169,51 +169,51 @@ RUN cd /tmp \

# Dependencies

## Pybind11

ARG PYBIND_11_VERSION="2.10.3-1"

RUN mkdir /tmp/pybind11 \
&& cd /tmp/pybind11 \
&& wget http://ftp.us.debian.org/debian/pool/main/p/pybind11/pybind11-dev_${PYBIND_11_VERSION}_all.deb \
&& apt-get install -y ./pybind11-dev_${PYBIND_11_VERSION}_all.deb \
&& rm -rf /tmp/pybind11

## Boost

ARG BOOST_MAJOR_VERSION="1"
ARG BOOST_MINOR_VERSION="82"
ARG BOOST_VERSION="${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.0"

RUN mkdir -p /tmp/boost \
&& cd /tmp/boost \
&& wget -O boost_${BOOST_VERSION}.tar.gz https://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION}/boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_0.tar.gz/download \
&& tar -xf boost_${BOOST_VERSION}.tar.gz \
&& cd boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_0 \
&& ./bootstrap.sh --with-python=/usr/local/bin/python3.10 \
&& echo "using python : 3.10 : /usr : /usr/include/python3.10m ;" >> project-config.jam \
&& ./b2 -j $(nproc) link=static cxxflags=-fPIC install \
&& ./b2 -j $(nproc) python=3.10 link=shared cxxflags=-fPIC install \
&& rm -rf /tmp/boost

## OpenSSL

ARG OPENSSL_VERSION="3.0.2"

RUN mkdir /tmp/openssl \
&& cd /tmp/openssl \
&& wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
&& tar -xvf openssl-${OPENSSL_VERSION}.tar.gz \
&& cd openssl-${OPENSSL_VERSION} \
&& ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib \
&& make \
&& make install \
&& touch /etc/ld.so.conf.d/openssl-${OPENSSL_VERSION}.conf \
&& echo "/usr/local/ssl/lib64" >> /etc/ld.so.conf.d/openssl-${OPENSSL_VERSION}.conf \
&& ldconfig \
&& mv /usr/local/ssl/bin/c_rehash /usr/bin/c_rehash \
&& mv /usr/local/ssl/bin/openssl /usr/bin/openssl \
&& rm -rf /tmp/openssl
# ## Pybind11

# ARG PYBIND_11_VERSION="2.10.3-1"

# RUN mkdir /tmp/pybind11 \
# && cd /tmp/pybind11 \
# && wget http://ftp.us.debian.org/debian/pool/main/p/pybind11/pybind11-dev_${PYBIND_11_VERSION}_all.deb \
# && apt-get install -y ./pybind11-dev_${PYBIND_11_VERSION}_all.deb \
# && rm -rf /tmp/pybind11

# ## Boost

# ARG BOOST_MAJOR_VERSION="1"
# ARG BOOST_MINOR_VERSION="82"
# ARG BOOST_VERSION="${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.0"

# RUN mkdir -p /tmp/boost \
# && cd /tmp/boost \
# && wget -O boost_${BOOST_VERSION}.tar.gz https://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION}/boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_0.tar.gz/download \
# && tar -xf boost_${BOOST_VERSION}.tar.gz \
# && cd boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_0 \
# && ./bootstrap.sh --with-python=/usr/local/bin/python3.10 \
# && echo "using python : 3.10 : /usr : /usr/include/python3.10m ;" >> project-config.jam \
# && ./b2 -j $(nproc) link=static cxxflags=-fPIC install \
# && ./b2 -j $(nproc) python=3.10 link=shared cxxflags=-fPIC install \
# && rm -rf /tmp/boost

# ## OpenSSL

# ARG OPENSSL_VERSION="3.0.2"

# RUN mkdir /tmp/openssl \
# && cd /tmp/openssl \
# && wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
# && tar -xvf openssl-${OPENSSL_VERSION}.tar.gz \
# && cd openssl-${OPENSSL_VERSION} \
# && ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib \
# && make \
# && make install \
# && touch /etc/ld.so.conf.d/openssl-${OPENSSL_VERSION}.conf \
# && echo "/usr/local/ssl/lib64" >> /etc/ld.so.conf.d/openssl-${OPENSSL_VERSION}.conf \
# && ldconfig \
# && mv /usr/local/ssl/bin/c_rehash /usr/bin/c_rehash \
# && mv /usr/local/ssl/bin/openssl /usr/bin/openssl \
# && rm -rf /tmp/openssl

## Black

Expand Down

0 comments on commit 0f9308f

Please sign in to comment.