# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: 'geckoview-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
git_hash: 'tor-browser-[% c("var/geckoview_version") %]-[% c("var/browser_branch") %]-build[% c("var/browser_build") %]'
tag_gpg_id: 1
git_url: https://gitlab.torproject.org/tpo/applications/tor-browser.git
gpg_keyring:
  - boklm.gpg
  - brizental.gpg
  - clairehurst.gpg
  - dan_b.gpg
  - henry.gpg
  - jwilde.gpg
  - ma1.gpg
  - morgan.gpg
  - pierov.gpg
container:
  use_container: 1
  disable_network:
    build: '[% !c("var/online_build") %]'
    build_apk: '[% !c("var/online_build") %]'

var:
  firefox_platform_version: '150.0a1'
  geckoview_version: '[% c("var/firefox_platform_version") %]'
  browser_series: '16.0'
  browser_rebase: 2
  browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]'
  browser_build: 3
  gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser
  git_commit: '[% exec("git rev-parse " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }) %]'
  deps:
    - build-essential
    - autoconf
    - yasm
    - python3
    - python3-venv
    - python3-zstandard
    - pkg-config
    - openjdk-17-jdk-headless
  gradle_version: 9.4.1
  glean_parser: 14.0.1
  # python/mozboot/mozboot/android.py
  bundletool_version: 1.18.3
  bundletool_hash: a099cfa1543f55593bc2ed16a70a7c67fe54b1747bb7301f37fdfd6d91028e29
  variant: beta
  has_l10n: '[% !c("var/testbuild") && !c("var/locales").empty %]'
  l10n-changesets: '[% exec("git --no-pager show " _ c("git_hash") _ ":browser/locales/l10n-changesets.json", { exec_noco => 1 }) %]'
  mozconfig_file: 'mozconfig-[% c("var/osname") %]'

targets:
  release:
    var:
      variant: release
  nightly:
    git_hash: 'tor-browser-[% c("var/geckoview_version") %]-[% c("var/browser_branch") %]'
    tag_gpg_id: 0
    var:
      variant: nightly
  firefoxbrowser:
    git_hash: '[% pc("firefox", "var/upstream_firefox_commit") %]'
    tag_gpg_id: 0
    var:
      online_build: 1
      has_l10n: 0

  # Run `make generate_gradle_dependencies_list-geckoview` to
  # generate the gradle dependencies file. You can them move the file
  # `out/geckoview/gradle-dependencies-list-$version.txt`
  # to `projects/geckoview/gradle-dependencies-list.txt`.
  generate_gradle_dependencies_list:
    filename: 'gradle-dependencies-list-[% IF c("var/firefox-browser"); GET c("git_hash"); ELSE; GET c("var/firefox_platform_version"); END; %].txt'
    var:
      online_build: 1
      generate_gradle_dependencies_list: 1

steps:
  build_apk:
    filename: 'geckoview-[% c("version") %]-apks-[% c("var/build_id") %]'
    version: '[% c("abbrev") %]'
    build_apk: '[% INCLUDE build_apk %]'
    var:
      mozconfig_file: 'mozconfig-android-all'
    input_files:
      - project: container-image
        pkg_type: build
      - filename: 'mozconfig'
        content: '[% INCLUDE "mozconfig.in" %]'
        refresh_input: 1
      - name: '[% c("var/compiler") %]'
        project: '[% c("var/compiler") %]'
        pkg_type: build
      - project: android-sdk
        name: android-sdk
        pkg_type: build
      - project: gradle
        name: gradle
        pkg_type: build
      - project: node
        name: node
        pkg_type: build
      - project: application-services
        name: application-services
        pkg_type: build
      - project: glean
        name: glean
        pkg_type: build
        enable: '[% !c("var/online_build") %]'
      - filename: gradle-dependencies-list.txt
        name: gradle-dependencies-list
      - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
        name: gradle-dependencies
        exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
        enable: '[% !c("var/online_build") %]'
      - name: geckoview_armv7
        project: geckoview
        pkg_type: build
        target_prepend:
          - torbrowser-android-armv7
      - name: geckoview_aarch64
        project: geckoview
        pkg_type: build
        target_prepend:
          - torbrowser-android-aarch64
      - name: geckoview_x86_64
        project: geckoview
        pkg_type: build
        target_prepend:
          - torbrowser-android-x86_64
      - project: firefox-l10n
        name: firefox-l10n
        enable: '[% c("var/has_l10n") %]'
        pkg_type: build
        target_prepend:
          - torbrowser-android-armv7
      - name: translation-fenix
        project: translation
        pkg_type: fenix
        enable: '[% c("var/has_l10n") %]'
      - name: translation-tor-browser
        project: translation
        pkg_type: tor-browser
        enable: '[% c("var/has_l10n") %]'
      - filename: rename-branding-strings.py
      - URL: '[% pc("glean-parser", "var/glean_wheels_url") %]'
        name: glean-wheels
        sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
        enable: '[% !c("var/online_build") %]'
      - project: terser
        name: terser
        pkg_type: build
      - name: tor-expert-bundle-aar
        project: tor-expert-bundle-aar
        pkg_type: build
      - URL: 'https://github.com/google/bundletool/releases/download/[% c("var/bundletool_version") %]/bundletool-all-[% c("var/bundletool_version") %].jar'
        name: bundletool
        sha256sum: '[% c("var/bundletool_hash") %]'

input_files:
  - project: container-image
  - filename: 'mozconfig'
    content: '[% INCLUDE "mozconfig.in" %]'
    refresh_input: 1
  - name: '[% c("var/compiler") %]'
    project: '[% c("var/compiler") %]'
  - project: android-sdk
    name: android-sdk
  - project: gradle
    name: gradle
  - project: rust
    name: rust
  - project: cbindgen
    name: cbindgen
  - project: node
    name: node
  - project: nasm
    name: nasm
  - project: clang-linux
    name: clang
  - project: wasi-sysroot
    name: wasi-sysroot
    enable: '[% c("var/rlbox") %]'
  - project: application-services
    name: application-services
    enable: '[% !c("var/firefox-browser") %]'
  - filename: gradle-dependencies-list.txt
    name: gradle-dependencies-list
  - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
    name: gradle-dependencies
    exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
    enable: '[% !c("var/online_build") %]'
  - URL: '[% pc("glean-parser", "var/glean_wheels_url") %]'
    name: glean-wheels
    sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
  - project: glean
    name: glean
    enable: '[% !c("var/online_build") %]'
  - project: terser
    name: terser
  - name: tor-expert-bundle-aar
    project: tor-expert-bundle-aar
    enable: '[% c("var/tor-browser") %]'
  - project: firefox-l10n
    name: firefox-l10n
    enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]'
  - name: translation-fenix
    project: translation
    pkg_type: fenix
    enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]'
  - name: translation-tor-browser
    project: translation
    pkg_type: tor-browser
    enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]'
  - filename: rename-branding-strings.py
  - URL: 'https://github.com/google/bundletool/releases/download/[% c("var/bundletool_version") %]/bundletool-all-[% c("var/bundletool_version") %].jar'
    name: bundletool
    sha256sum: '[% c("var/bundletool_hash") %]'
  - filename: gen-gradle-deps-file.py
    enable: '[% c("var/online_build") %]'
