mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:38:53 +03:00
56 lines
2.1 KiB
Bash
Executable File
56 lines
2.1 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"
|
|
|
|
if [[ -n "${GIT_REF:-}" ]] && [[ -d "${WORK_DIR}/.git" ]]; then
|
|
echo "[runner] syncing git ref=${GIT_REF}" | tee -a "$LOG_FILE"
|
|
git -C "${WORK_DIR}" fetch origin --prune 2>&1 | tee -a "$LOG_FILE" || true
|
|
git -C "${WORK_DIR}" checkout "${GIT_REF}" 2>&1 | tee -a "$LOG_FILE" || true
|
|
git -C "${WORK_DIR}" pull --rebase origin "${GIT_REF}" 2>&1 | tee -a "$LOG_FILE" || true
|
|
git -C "${WORK_DIR}" rev-parse HEAD 2>&1 | tee -a "$LOG_FILE" || true
|
|
fi
|
|
|
|
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"
|