Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update plugin for compatibility with new openedx mobile repositories and upgrade dependencies #21

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ The ``.apk`` file will then be available for download at http(s)://mobile.LMS_HO
Building a custom Android app
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Android app is built from the `official edx-app-android repository <https://github.com/edx/edx-app-android/>`__. To change this repository or the app version, you can simply build a different docker image with::
The Android app is built from the `official openedx-app-android repository <https://github.com/openedx/openedx-app-android/>`__. To change this repository or the app version, you can simply build a different docker image with::

tutor images build \
--build-arg ANDROID_APP_REPOSITORY=https://github.com/mycustomfork/edx-app-android \
--build-arg ANDROID_APP_REPOSITORY=https://github.com/mycustomfork/openedx-app-android \
--build-arg ANDROID_APP_VERSION=master \
android

Alternatively, you can build an image from a local checked-out fork of edx-app-android::
Alternatively, you can build an image from a local checked-out fork of openedx-app-android::

tutor mounts add /path/to/edx-app-android
tutor mounts add /path/to/openedx-app-android
tutor local launch

Making courses visible in app
Expand Down
4 changes: 2 additions & 2 deletions tutorandroid/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ def _build_custom_android_app(
mounts: list[tuple[str, str]], host_path: str
) -> list[tuple[str, str]]:
path_basename = os.path.basename(host_path)
if path_basename == "edx-app-android":
if path_basename == "openedx-app-android":
# Bind-mount repo at build-time
mounts.append(("android", "edx-app-android"))
mounts.append(("android", "openedx-app-android"))
return mounts


Expand Down
31 changes: 16 additions & 15 deletions tutorandroid/templates/android/build/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ FROM base AS sdk
# Install Android SDK
# Inspired from https://github.com/LiveXP/docker-android-sdk/blob/master/Dockerfile
# Get sdk version from here: https://developer.android.com/studio#command-tools
ENV ANDROID_SDK_VERSION 10406996
ENV ANDROID_SDK_VERSION 11076708
ENV ANDROID_SDK_PATH /app/android-sdk
ENV ANDROID_HOME /app/android-sdk
RUN mkdir ${ANDROID_HOME}
Expand All @@ -28,27 +28,26 @@ RUN wget --quiet https://dl.google.com/android/repository/commandlinetools-linux
# Accept licenses
# https://developer.android.com/studio/command-line/sdkmanager
# Check target version: https://github.com/edx/edx-app-android/blob/master/constants.gradle
ARG ANDROID_API_LEVEL=33
ARG ANDROID_API_LEVEL=34
RUN yes | /app/android-sdk/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --install "platforms;android-$ANDROID_API_LEVEL" 1> /dev/null

###### Checkout code
FROM base AS code
# Install android app repo
ARG ANDROID_APP_REPOSITORY=https://github.com/openedx/edx-app-android.git

# Please add ANDROID_APP_VERSION value in tutor config from release version https://github.com/openedx/edx-app-android/tags
ARG ANDROID_APP_VERSION={% if OPENEDX_COMMON_VERSION == "master" %}master{% else %}release/{{ ANDROID_APP_VERSION }}{% endif %}
ADD --keep-git-dir $ANDROID_APP_REPOSITORY#$ANDROID_APP_VERSION /app/edx-app-android
ARG ANDROID_APP_REPOSITORY=https://github.com/openedx/openedx-app-android.git
# Always use the 'main' branch
Abdul-Muqadim-Arbisoft marked this conversation as resolved.
Show resolved Hide resolved
ARG ANDROID_APP_VERSION=main
ADD --keep-git-dir $ANDROID_APP_REPOSITORY#$ANDROID_APP_VERSION /app/openedx-app-android

###### Empty layer to mount custom repo at build time
FROM scratch AS edx-app-android
COPY --from=code /app/edx-app-android /
FROM scratch AS openedx-app-android
COPY --from=code /app/openedx-app-android /

###### Common layer, which will be used to build the user-specific image later
FROM sdk AS common

COPY --from=edx-app-android / /app/edx-app-android
WORKDIR /app/edx-app-android
COPY --from=openedx-app-android / /app/openedx-app-android
WORKDIR /app/openedx-app-android

# Install gradle and all dependencies
RUN ./gradlew -v
Expand All @@ -58,8 +57,9 @@ RUN ./gradlew tasks
FROM common as build

# User-customized config
COPY ./config/edx.properties ./OpenEdXMobile/default_config/edx.properties
COPY ./config/tutor.yaml ./OpenEdXMobile/default_config/tutor.yaml
COPY ./config/tutor.yaml ./default_config/dev/config.yaml
COPY ./config/tutor.yaml ./default_config/stage/config.yaml
COPY ./config/tutor.yaml ./default_config/prod/config.yaml
{% if ANDROID_ENABLE_RELEASE_MODE %}
# Add release settings
COPY ./config/gradle.properties ./gradle.properties.tutor
Expand All @@ -68,10 +68,11 @@ RUN cat ./gradle.properties.tutor >> ./gradle.properties

# uncomment this line for for release APK.
# RUN sed -i "s/APPLICATION_ID = .*/APPLICATION_ID = \"{{ LMS_HOST|reverse_host|replace("-", "_") }}\"/g" constants.gradle
RUN ./gradlew assembleProd{{ "Release" if ANDROID_ENABLE_RELEASE_MODE else "Debuggable" }}
RUN ./gradlew assembleProd{{ "Release" if ANDROID_ENABLE_RELEASE_MODE else "Debug" }}
# ./gradlew assembleProdRelease

#### File server to serve apk file
# https://hub.docker.com/_/caddy?tab=tags
FROM docker.io/caddy:2.6.4-alpine as production
COPY --from=build /app/edx-app-android/OpenEdXMobile/build/outputs/apk/prod/{{ "release" if ANDROID_ENABLE_RELEASE_MODE else "debuggable" }}/edx-{{ "release" if ANDROID_ENABLE_RELEASE_MODE else "debuggable" }}-{{ ANDROID_APP_VERSION }}.apk /srv/app.apk
COPY --from=build /app/openedx-app-android/app/build/outputs/apk/prod/{{ "release" if ANDROID_ENABLE_RELEASE_MODE else "debug" }}/app-prod-{{ "release" if ANDROID_ENABLE_RELEASE_MODE else "debug" }}.apk /srv/app.apk
CMD caddy file-server --listen=:8000 --root=/srv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RELEASE_STORE_FILE=/app/edx-app-android/OpenEdXMobile/app.keystore
RELEASE_STORE_FILE=/app/openedx-app-android/app.keystore
RELEASE_STORE_PASSWORD={{ ANDROID_RELEASE_STORE_PASSWORD }}
RELEASE_KEY_PASSWORD={{ ANDROID_RELEASE_KEY_PASSWORD }}
RELEASE_KEY_ALIAS={{ ANDROID_RELEASE_KEY_ALIAS }}