1*523fa7a6SAndroid Build Coastguard Worker#!/bin/bash 2*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates. 3*523fa7a6SAndroid Build Coastguard Worker# All rights reserved. 4*523fa7a6SAndroid Build Coastguard Worker# 5*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the 6*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree. 7*523fa7a6SAndroid Build Coastguard Worker 8*523fa7a6SAndroid Build Coastguard Workerset -exu 9*523fa7a6SAndroid Build Coastguard Worker 10*523fa7a6SAndroid Build Coastguard WorkerIMAGE_NAME="$1" 11*523fa7a6SAndroid Build Coastguard Workershift 12*523fa7a6SAndroid Build Coastguard Worker 13*523fa7a6SAndroid Build Coastguard Workerecho "Building ${IMAGE_NAME} Docker image" 14*523fa7a6SAndroid Build Coastguard Worker 15*523fa7a6SAndroid Build Coastguard WorkerOS=ubuntu 16*523fa7a6SAndroid Build Coastguard WorkerOS_VERSION=22.04 17*523fa7a6SAndroid Build Coastguard WorkerCLANG_VERSION="" 18*523fa7a6SAndroid Build Coastguard WorkerGCC_VERSION="" 19*523fa7a6SAndroid Build Coastguard WorkerPYTHON_VERSION=3.10 20*523fa7a6SAndroid Build Coastguard WorkerMINICONDA_VERSION=23.10.0-1 21*523fa7a6SAndroid Build Coastguard WorkerBUCK2_VERSION=$(cat ci_commit_pins/buck2.txt) 22*523fa7a6SAndroid Build Coastguard Worker 23*523fa7a6SAndroid Build Coastguard Workercase "${IMAGE_NAME}" in 24*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-gcc9) 25*523fa7a6SAndroid Build Coastguard Worker LINTRUNNER="" 26*523fa7a6SAndroid Build Coastguard Worker GCC_VERSION=9 27*523fa7a6SAndroid Build Coastguard Worker ;; 28*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-clang12) 29*523fa7a6SAndroid Build Coastguard Worker LINTRUNNER="" 30*523fa7a6SAndroid Build Coastguard Worker CLANG_VERSION=12 31*523fa7a6SAndroid Build Coastguard Worker ;; 32*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-linter) 33*523fa7a6SAndroid Build Coastguard Worker LINTRUNNER=yes 34*523fa7a6SAndroid Build Coastguard Worker CLANG_VERSION=12 35*523fa7a6SAndroid Build Coastguard Worker ;; 36*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-arm-sdk) 37*523fa7a6SAndroid Build Coastguard Worker ARM_SDK=yes 38*523fa7a6SAndroid Build Coastguard Worker CLANG_VERSION=12 39*523fa7a6SAndroid Build Coastguard Worker ;; 40*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-qnn-sdk) 41*523fa7a6SAndroid Build Coastguard Worker QNN_SDK=yes 42*523fa7a6SAndroid Build Coastguard Worker CLANG_VERSION=12 43*523fa7a6SAndroid Build Coastguard Worker ;; 44*523fa7a6SAndroid Build Coastguard Worker executorch-ubuntu-22.04-clang12-android) 45*523fa7a6SAndroid Build Coastguard Worker LINTRUNNER="" 46*523fa7a6SAndroid Build Coastguard Worker CLANG_VERSION=12 47*523fa7a6SAndroid Build Coastguard Worker # From https://developer.android.com/ndk/downloads 48*523fa7a6SAndroid Build Coastguard Worker ANDROID_NDK_VERSION=r27b 49*523fa7a6SAndroid Build Coastguard Worker ;; 50*523fa7a6SAndroid Build Coastguard Worker *) 51*523fa7a6SAndroid Build Coastguard Worker echo "Invalid image name ${IMAGE_NAME}" 52*523fa7a6SAndroid Build Coastguard Worker exit 1 53*523fa7a6SAndroid Build Coastguard Workeresac 54*523fa7a6SAndroid Build Coastguard Worker 55*523fa7a6SAndroid Build Coastguard WorkerTORCH_VERSION=$(cat ci_commit_pins/pytorch.txt) 56*523fa7a6SAndroid Build Coastguard WorkerBUILD_DOCS=1 57*523fa7a6SAndroid Build Coastguard Worker 58*523fa7a6SAndroid Build Coastguard Worker# Copy requirements-lintrunner.txt from root to here 59*523fa7a6SAndroid Build Coastguard Workercp ../../requirements-lintrunner.txt ./ 60*523fa7a6SAndroid Build Coastguard Worker 61*523fa7a6SAndroid Build Coastguard Worker# Copy arm setup script from root to here 62*523fa7a6SAndroid Build Coastguard Worker# TODO(huydhn): Figure out a way to rebuild the Docker image automatically 63*523fa7a6SAndroid Build Coastguard Worker# with a new image hash when the content here is updated 64*523fa7a6SAndroid Build Coastguard Workercp -r ../../examples/arm/ ./arm 65*523fa7a6SAndroid Build Coastguard Worker 66*523fa7a6SAndroid Build Coastguard Workerdocker build \ 67*523fa7a6SAndroid Build Coastguard Worker --no-cache \ 68*523fa7a6SAndroid Build Coastguard Worker --progress=plain \ 69*523fa7a6SAndroid Build Coastguard Worker --build-arg "OS_VERSION=${OS_VERSION}" \ 70*523fa7a6SAndroid Build Coastguard Worker --build-arg "CLANG_VERSION=${CLANG_VERSION}" \ 71*523fa7a6SAndroid Build Coastguard Worker --build-arg "GCC_VERSION=${GCC_VERSION}" \ 72*523fa7a6SAndroid Build Coastguard Worker --build-arg "PYTHON_VERSION=${PYTHON_VERSION}" \ 73*523fa7a6SAndroid Build Coastguard Worker --build-arg "MINICONDA_VERSION=${MINICONDA_VERSION}" \ 74*523fa7a6SAndroid Build Coastguard Worker --build-arg "TORCH_VERSION=${TORCH_VERSION}" \ 75*523fa7a6SAndroid Build Coastguard Worker --build-arg "BUCK2_VERSION=${BUCK2_VERSION}" \ 76*523fa7a6SAndroid Build Coastguard Worker --build-arg "LINTRUNNER=${LINTRUNNER:-}" \ 77*523fa7a6SAndroid Build Coastguard Worker --build-arg "BUILD_DOCS=${BUILD_DOCS}" \ 78*523fa7a6SAndroid Build Coastguard Worker --build-arg "ARM_SDK=${ARM_SDK:-}" \ 79*523fa7a6SAndroid Build Coastguard Worker --build-arg "QNN_SDK=${QNN_SDK:-}" \ 80*523fa7a6SAndroid Build Coastguard Worker --build-arg "ANDROID_NDK_VERSION=${ANDROID_NDK_VERSION:-}" \ 81*523fa7a6SAndroid Build Coastguard Worker -f "${OS}"/Dockerfile \ 82*523fa7a6SAndroid Build Coastguard Worker "$@" \ 83*523fa7a6SAndroid Build Coastguard Worker . 84