mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:18:09 +03:00
orchestration beginning
This commit is contained in:
27
Dockerfile
27
Dockerfile
@@ -1,18 +1,25 @@
|
||||
# Minimal Android Cast CI image (glibc-based; NDK prebuilts require linux-x86_64 glibc).
|
||||
#
|
||||
# Build:
|
||||
# docker build -t androidcast-ci:latest -f Dockerfile .
|
||||
# docker build --build-arg ANDROIDCAST_CI_VERSION=00.01.00.1000 -t androidcast-ci:00.01.00.1000 -f Dockerfile .
|
||||
#
|
||||
# Run CI build (mount repo):
|
||||
# docker run --rm -v "$(pwd)":/workspace -w /workspace androidcast-ci:latest
|
||||
#
|
||||
# Interactive:
|
||||
# docker run --rm -it -v "$(pwd)":/workspace -w /workspace androidcast-ci:latest bash
|
||||
#
|
||||
# Note: Alpine/musl breaks NDK clang prebuilts; use Debian slim instead of rust:* for size.
|
||||
# CI image version (AA.BB.CC.DDDD — AA always 00)
|
||||
ARG ANDROIDCAST_CI_MAJOR=00
|
||||
ARG ANDROIDCAST_CI_MINOR=01
|
||||
ARG ANDROIDCAST_CI_PATCH=00
|
||||
ARG ANDROIDCAST_CI_BUILD=1000
|
||||
ARG ANDROIDCAST_CI_VERSION=00.01.00.1000
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
ARG ANDROIDCAST_CI_VERSION
|
||||
LABEL org.androidcast.ci.version="${ANDROIDCAST_CI_VERSION}"
|
||||
LABEL org.opencontainers.image.title="androidcast-ci"
|
||||
LABEL org.opencontainers.image.version="${ANDROIDCAST_CI_VERSION}"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
ARG ANDROID_NDK_VERSION=27.0.12077973
|
||||
@@ -26,6 +33,7 @@ ENV ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT}" \
|
||||
PATH="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${PATH}" \
|
||||
ANDROIDCAST_CCACHE=1 \
|
||||
ANDROIDCAST_USE_DISTCC=0 \
|
||||
ANDROIDCAST_CI_VERSION="${ANDROIDCAST_CI_VERSION}" \
|
||||
GRADLE_USER_HOME=/root/.gradle \
|
||||
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
|
||||
|
||||
@@ -34,7 +42,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ninja-build cmake ccache \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Optional distributed compile (off unless ANDROIDCAST_USE_DISTCC=1 + DISTCC_HOSTS at run time).
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends distcc \
|
||||
&& rm -rf /var/lib/apt/lists/* || true
|
||||
|
||||
@@ -55,13 +62,13 @@ RUN yes | sdkmanager --licenses >/dev/null \
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
# Pre-create ccache dir (volume can override at runtime).
|
||||
RUN mkdir -p /workspace/build/.ccache || true
|
||||
|
||||
COPY scripts/ci-build.sh scripts/android-ndk.sh scripts/native-build-cache.sh scripts/build-native-codecs.sh \
|
||||
COPY scripts/ci-build.sh scripts/ci-build-and-publish-ota.sh scripts/generate-ota-v0.sh \
|
||||
scripts/android-ndk.sh scripts/native-build-cache.sh scripts/build-native-codecs.sh \
|
||||
/workspace/scripts/
|
||||
|
||||
RUN chmod +x /workspace/scripts/ci-build.sh /workspace/scripts/build-native-codecs.sh
|
||||
RUN chmod +x /workspace/scripts/ci-build.sh /workspace/scripts/ci-build-and-publish-ota.sh \
|
||||
/workspace/scripts/generate-ota-v0.sh /workspace/scripts/build-native-codecs.sh
|
||||
|
||||
# Full tree is bind-mounted in CI; default command runs the pipeline.
|
||||
CMD ["./scripts/ci-build.sh"]
|
||||
|
||||
Reference in New Issue
Block a user