onnxruntime/tools/android_custom_build/Dockerfile
Changming Sun 4a0b86eba6
Update the post-merge pipeline (#14965)
### Description
1.  Remove Linux jobs for ORT-Extension combined build
2.  Add a macOS build job for ORT-Extension combined build
3. Adjust the yaml file so that it can support two different ADO
instances.


### Motivation and Context
To test our code better. And it will enable us to run such tests for
every commit in the main branch. It would be easier for us to figure out
which change caused a build break.

See
[AB#13435](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/13435)
2023-03-29 13:12:07 -07:00

80 lines
3 KiB
Docker

# --------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# --------------------------------------------------------------
# Dockerfile for ONNX Runtime Android package build environment
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
# install utilities and ORT dependencies
RUN apt-get update && apt-get install --yes --no-install-recommends \
aria2 curl \
build-essential \
ca-certificates \
git \
ninja-build \
openjdk-11-jdk-headless \
python3-dev \
python3-numpy \
python3-pip \
python3-setuptools \
python3-wheel \
unzip
# cmake
RUN CMAKE_VERSION=3.25.2 && \
aria2c -q -d /tmp -o cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz \
--checksum=sha-256=783da74f132fd1fea91b8236d267efa4df5b91c5eec1dea0a87f0cf233748d99 \
https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \
tar -zxf /tmp/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz --strip=1 -C /usr
# gradle
# Note: A system-installed gradle is not required in more recent versions of ORT which use an included gradle wrapper,
# but keep it around to support building older versions.
RUN GRADLE_VERSION=6.8.3 && \
aria2c -q -d /tmp -o gradle-${GRADLE_VERSION}-bin.zip \
--checksum=sha-256=7faa7198769f872826c8ef4f1450f839ec27f0b4d5d1e51bade63667cbccd205 \
https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
mkdir /opt/gradle && \
unzip -d /opt/gradle /tmp/gradle-${GRADLE_VERSION}-bin.zip && \
ln -s /opt/gradle/gradle-${GRADLE_VERSION}/bin/gradle /usr/bin
# flatbuffers
RUN python3 -m pip install flatbuffers==2.0
# configure user and set up workspace directory
ARG BUILD_UID=1001
ARG BUILD_USER=onnxruntimedev
RUN adduser --gecos "onnxruntime Build User" --disabled-password --uid ${BUILD_UID} ${BUILD_USER} && \
mkdir /workspace && \
chown ${BUILD_USER} /workspace
USER ${BUILD_USER}
WORKDIR /workspace
# install Android SDK and tools
ENV ANDROID_HOME=~/android-sdk
ENV NDK_VERSION=25.0.8775105
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/${NDK_VERSION}
RUN aria2c -q -d /tmp -o cmdline-tools.zip \
--checksum=sha-256=0bebf59339eaa534f4217f8aa0972d14dc49e7207be225511073c661ae01da0a \
https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip && \
unzip /tmp/cmdline-tools.zip -d /tmp/cmdline-tools && \
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
mv /tmp/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest
RUN yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses
RUN ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install \
"platforms;android-32" \
"ndk;${NDK_VERSION}"
# get ORT repo
ARG ONNXRUNTIME_REPO=https://github.com/microsoft/onnxruntime.git
ARG ONNXRUNTIME_BRANCH_OR_TAG=main
RUN git clone --single-branch --branch=${ONNXRUNTIME_BRANCH_OR_TAG} --recurse-submodules ${ONNXRUNTIME_REPO} \
/workspace/onnxruntime
# add scripts
COPY --chown=${BUILD_UID} scripts /workspace/scripts