Skip to content
Snippets Groups Projects
Select Git revision
  • cfd5768e451744cd4e2bdfe7e69204bee6884763
  • master default protected
  • 230-add-non-free-duolingo-app-icon
  • 201-improve-app-metadata
4 results

.gitlab-ci.yml

Blame
  • .gitlab-ci.yml 1.70 KiB
    # Modeled after https://salsa.debian.org/freedombox-team/android-app/blob/master/.gitlab-ci.yml
    image: openjdk:8-jdk
    
    variables:
      ANDROID_COMPILE_SDK: "28"
      ANDROID_BUILD_TOOLS: "28.0.3"
      ANDROID_SDK_TOOLS: "4333796"
    
    before_script:
      - apt-get --quiet update --yes
      - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
      - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
      - unzip -d android-sdk-linux android-sdk.zip
      - echo y | android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
      - echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
      - echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
      - export ANDROID_HOME=$PWD/android-sdk-linux
      - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
      - chmod +x ./gradlew
      # temporarily disable checking for EPIPE error and use yes to accept all licenses
      - set +o pipefail
      - yes | android-sdk-linux/tools/bin/sdkmanager --licenses
      - set -o pipefail
    
    stages:
      - test
      - build
      - release
    
    unitTests:
      stage: test
      script:
        - ./gradlew test
    
    assembleDebug:
      stage: build
      script:
        - ./gradlew assembleDebug
    
    assembleRelease:
      stage: release
      only:
        - master
      script:
        - echo $KEYSTORE_FILE | base64 -d > my.keystore
        - ./gradlew assembleRelease
          -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
          -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
          -Pandroid.injected.signing.key.alias=$KEY_ALIAS
          -Pandroid.injected.signing.key.password=$KEY_PASSWORD
      artifacts:
        paths:
        - app/build/outputs/apk/release