# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
version: '[% c("var/version_28") %]+[% c("var/version_29") %]+[% c("var/version_30") %]+[% c("var/version_31") %]'
container:
  use_container: 1
var:
  version_31: 31.0.0
  version_30: 30.0.2
  version_29: 29.0.2
  version_28: 28.0.3
  setup: |
    mkdir -p /var/tmp/dist
    tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
    export ANDROID_HOME=/var/tmp/dist/[% project %]/android-sdk-linux
    # By default we use the old NDK which is the one GeckoView is using.
    # However, we can overwrite that per project if needed (e.g.
    # application-services is currently on a newer NDK).
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/android-ndk-r[% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %]
    export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME
    export ANDROID_NDK_API_VERSION=[% c("var/android_ndk_version") %][% c('var/android_ndk_revision') %]
    export NDK_HOST_TAG=linux-x86_64
    export PATH=$PATH:$ANDROID_HOME/build-tools/[% c("var/version_31") %]:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin
    [% IF c("gradle_tarfile") -%]
      tar -C /var/tmp/dist/[% project %] -xf $rootdir/[% c("gradle_tarfile") %]
      export GRADLE_HOME=/var/tmp/dist/[% project %]/gradle
      export GRADLE_USER_HOME=$GRADLE_HOME
      export PATH=$PATH:$GRADLE_HOME/bin
    [% END -%]
  google_repo: https://dl.google.com/android/repository
  android_api_level: 31
  android_platform_revision: 01
  android_release_dir: android-12
  android_api_level_30: 30
  android_platform_revision_30: 03
  android_release_dir_30: android-11
  android_api_level_29: 29
  android_platform_revision_29: 04
  android_release_dir_29: android-10
  android_release_dir_28: android-9
  android_ndk_version: 21
  android_ndk_revision: d
  android_ndk_version_build: 21.3.6528147
  # XXX: In commit 83fffa1198c3cbeffec45028971896876e2133a5 mozilla
  # replaced sdk-tools with commandlinetools. We try to do the same here,
  # but it seems sdk-tools is still being used in the build, so we can't
  # remove sdk-tools yet.
  sdk_tools_version: 4333796
  commandlinetools_version: 7583922
  commandlinetools_version_string: 5.0
  build_tools_filename: build-tools_r31-linux.zip
  build_tools_sha256sum: f90c22f5562638a2e00762e1711eebd55e7f0a05232b65200d387307d057bfe8
input_files:
  - project: container-image
  - URL: '[% c("var/google_repo") %]/[% c("var/build_tools_filename") %]'
    name: build_tools
    sha256sum: '[% c("var/build_tools_sha256sum") %]'
  - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_30") %]-linux.zip'
    name: build_tools_30
    sha256sum: 565af786dc0cc1941002174fb945122eabd080b222cd4c7c3d9a2ae0fabf5dc4
  - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_29") %]-linux.zip'
    name: build_tools_29
    sha256sum: 1e9393cbfd4a4b82e30e7f55ab38db4a5a3259db93d5821c63597bc74522fa08
  - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_28") %]-linux.zip'
    name: build_tools_28
    sha256sum: 7954956a40633c88f693d638cbc23f68e9e2499dc7a4b7dfdaf6a3e91387749a
  - URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level_29") %]_r[% c("var/android_platform_revision_29") %].zip'
    name: platform_29
    sha256sum: c9eaf2ce4e8fa6f5a8036bd3c95363d003733bf0a1bd349718cadf802db44c69
  - URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level_30") %]_r[% c("var/android_platform_revision_30") %].zip'
    name: platform_30
    sha256sum: f3f5b75744dbf6ee6ed3e8174a71e513bfee502d0bc3463ea97e517bff68d84e
  - URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level") %]_r[% c("var/android_platform_revision") %].zip'
    name: platform
    sha256sum: 1d69fe1d7f9788d82ff3a374faf4f6ccc9d1d372aa84a86b5bcfb517523b0b3f
  # ./mach bootstrap is fetching the latest version, so it does not seem to
  # matter which particular version we are using. Pin to the one fitting best to
  # SDK version/build-tools version.
  - URL: '[% c("var/google_repo") %]/platform-tools_r[% c("var/version_30") %]-linux.zip'
    name: platform_tools
    sha256sum: f7306a7c66d8149c4430aff270d6ed644c720ea29ef799dc613d3dc537485c6e
  - URL: '[% c("var/google_repo") %]/sdk-tools-linux-[% c("var/sdk_tools_version") %].zip'
    name: android_sdk_tools
    sha256sum: 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
  - URL: '[% c("var/google_repo") %]/commandlinetools-linux-[% c("var/commandlinetools_version") %]_latest.zip'
    name: android_commandlinetools
    sha256sum: 124f2d5115eee365df6cf3228ffbca6fc3911d16f8025bebd5b1c6e2fcfa7faf
  - URL: '[% c("var/google_repo") %]/android-ndk-r[% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %]-linux-x86_64.zip'
    name: android_ndk_compiler
    sha256sum: dd6dc090b6e2580206c64bcee499bc16509a5d017c6952dcd2bed9072af67cbd
steps:
  # The get_build_tools step is used by tools/signing/android-signing
  get_build_tools:
    filename: 'android-[% c("var/build_tools_filename") %]'
    get_build_tools: |
      #!/bin/bash
      set -e
      mv -v [% c("input_files_by_name/build_tools") %] [% dest_dir _ '/' _ c('filename') %]
    var:
      container:
        use_container: 0
    input_files:
      - URL: '[% c("var/google_repo") %]/[% c("var/build_tools_filename") %]'
        name: build_tools
        sha256sum: '[% c("var/build_tools_sha256sum") %]'
