Initial WIP, fails but has the main elements

This commit is contained in:
Joshua Boniface committed 2019-02-07 20:50:58 -05:00
1 parent 5a35462fa2
commit 36886e51e5
4 files changed
+109

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
.git*
.dockerignore
Dockerfile
build
new-file-header.txt
CONTRIBUTORS.md
README.md
+38
View File
@@ -0,0 +1,38 @@
FROM debian:9
# Docker build arguments
ARG SOURCE_DIR=/repo
ARG ARTIFACT_DIR=/dist
ARG ANDROID_DIR=/usr/lib/android-sdk
# Docker run environment
ENV SOURCE_DIR=/repo
ENV ARTIFACT_DIR=/dist
ENV ANDROID_DIR=/usr/lib/android-sdk
# Prepare Debian build environment
RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list.d/backports.list \
&& apt-get update \
&& apt-get install -y mmv wget unzip git \
&& apt-get install -t stretch-backports -y npm android-sdk openjdk-8-jdk
# Install Android repository tools
RUN rm -rf ${ANDROID_DIR}/tools \
&& wget http://dl-ssl.google.com/android/repository/tools_r25.2.3-linux.zip -O tools.zip \
&& unzip tools.zip -d ${ANDROID_DIR}/ \
&& rm -f tools.zip
# Install SDK tools
# `yes` is required to accept licenses:
# https://stackoverflow.com/questions/38096225/automatically-accept-all-sdk-licences/42125740#42125740
# There will be a bit of delay (approx 30 seconds)
RUN yes | ${ANDROID_DIR}/tools/bin/sdkmanager "platform-tools" "platforms;android-27" "build-tools;27.0.3" "extras;android;m2repository" "extras;google;m2repository"
RUN ln -sf ${SOURCE_DIR}/docker-build.sh /docker-build.sh
# Prepare artifact volume
VOLUME ${ARTIFACT_DIR}/
# Copy repository
COPY . ${SOURCE_DIR}/
# Set docker-build entrypoint
ENTRYPOINT ["/docker-build.sh"]
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
# Builds the APK inside the Docker container
set -o errexit
set -o xtrace
# Handle the release type
case ${RELEASE} in
'production')
RELEASE_SUFFIX=""
NODE_ENV="production"
RFLAG="--release"
;;
'unminified')
RELEASE_SUFFIX="unminified_"
NODE_ENV="development"
RFLAG="--release"
;;
'debug')
RELEASE_SUFFIX="debug_"
NODE_ENV="development"
RFLAG=""
;;
esac
# Export environment variables
export ANDROID_HOME=${ANDROID_DIR}
export NODE_ENV
# Move to source directory
pushd ${SOURCE_DIR}
# Build APK
which gradle
gradle --version
gradle tasks
gradle assembleDebug
# Move the artifacts out
mkdir -p ${ARTIFACT_DIR}/apk
mmv "${SOURCE_DIR}/platforms/android/build/outputs/apk/android-*.apk" "${ARTIFACT_DIR}/apk/jellyfin-android_${RELEASE_SUFFIX}#1.apk"
+22
View File
@@ -0,0 +1,22 @@
### This header should be used to start new files.
### It provides an explicit per-file license reference that should be present on all new files.
### To use this header, delete these lines and the following empty line, modify <filename> to
### the proper full path, and then add new code following the header and a single empty line.
// <filename>
// Part of the Jellyfin project (https://jellyfin.media)
//
// All copyright belongs to the Jellyfin contributors; a full list can
// be found in the file CONTRIBUTORS.md
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.