1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 08:19:00 +03:00
Files
android_cast/scripts/docker-build-runner.sh
2026-05-30 17:55:36 +02:00

48 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Host wrapper: build CI image + run pipeline with log capture.
#
# Usage:
# ./scripts/docker-build-runner.sh --build-id 42 --workdir /path/to/repo
#
# Env: see ci-build-and-publish-ota.sh
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
IMAGE="${ANDROIDCAST_CI_IMAGE:-androidcast-ci:latest}"
CI_VERSION="${ANDROIDCAST_CI_VERSION:-00.01.00.1000}"
BUILD_ID="${BUILD_ID:-local}"
LOG_FILE="${BUILD_LOG_FILE:-${ROOT}/out/builds/${BUILD_ID}/build.log}"
WORK_DIR="${BUILD_WORK_DIR:-${ROOT}}"
OUT_DIR="${BUILD_OUT_DIR:-${WORK_DIR}/out/builds/${BUILD_ID}}"
mkdir -p "$(dirname "$LOG_FILE")" "$OUT_DIR"
echo "[runner] image=${IMAGE} ci_version=${CI_VERSION} build_id=${BUILD_ID}" | tee -a "$LOG_FILE"
echo "[runner] workdir=${WORK_DIR} out=${OUT_DIR}" | tee -a "$LOG_FILE"
docker build \
--build-arg ANDROIDCAST_CI_VERSION="${CI_VERSION}" \
-t "$IMAGE" \
-f "${ROOT}/Dockerfile" \
"${ROOT}" 2>&1 | tee -a "$LOG_FILE"
docker run --rm \
-v "${WORK_DIR}:/workspace" \
-v "${ROOT}/out:/workspace/out" \
-w /workspace \
-e BUILD_ID="${BUILD_ID}" \
-e OUT_DIR="/workspace/out/builds/${BUILD_ID}" \
-e OTA_BASE_URL="${OTA_BASE_URL:-}" \
-e OTA_CHANNEL="${OTA_CHANNEL:-staging}" \
-e GRADLE_TASK="${GRADLE_TASK:-assembleDebug}" \
-e RUN_UNIT_TESTS="${RUN_UNIT_TESTS:-1}" \
-e RUN_NATIVE="${RUN_NATIVE:-1}" \
-e AUTO_OTA="${AUTO_OTA:-0}" \
-e GIT_REF="${GIT_REF:-}" \
-e GIT_SHA="${GIT_SHA:-}" \
-e RELEASE_NOTES="${RELEASE_NOTES:-}" \
"$IMAGE" \
./scripts/ci-build-and-publish-ota.sh 2>&1 | tee -a "$LOG_FILE"
echo "[runner] finished build_id=${BUILD_ID}" | tee -a "$LOG_FILE"