diff --git a/Dockerfile b/Dockerfile index d87bbb0..be8e3c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN curl -Ls https://github.com/google/bloaty/releases/download/v1.1/bloaty-1.1. RUN apt-get update RUN apt-get upgrade -y RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full -RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y rpm +RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y rpm qemu-user g++-aarch64-linux-gnu # Try to have all the pre-commit hooks we'll need already initialized COPY .pre-commit-config.yaml /tmp/ diff --git a/Jenkinsfile b/Jenkinsfile index 38f14ad..d8d6ec2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -60,6 +60,23 @@ pipeline { minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/*.deb,build/*.rpm,paper/*.pdf', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}/' } } + stage('Release [gcc,aarch64]') { + agent { + dockerfile { + args '-v /home/jenkins/ccache:/ccache' + reuseNode true + } + } + steps { + CleanBuildAndTest("-DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake") + sh ''' + cd build + cpack -G DEB + cpack -G RPM + ''' + minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/*.deb,build/*.rpm', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}' + } + } stage('Coverage') { agent { dockerfile { diff --git a/aarch64-toolchain.cmake b/aarch64-toolchain.cmake new file mode 100644 index 0000000..ce4cb2c --- /dev/null +++ b/aarch64-toolchain.cmake @@ -0,0 +1,7 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR aarch64) +set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc") +set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++") +set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu) +set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-aarch64;-L;/usr/aarch64-linux-gnu/") +set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm64)