# vim: filetype=yaml sw=2
version: '150.0'
git_hash: 'v[% c("version") %]-TORBROWSER-build[% c("var/build_number") %]'
git_url: https://gitlab.torproject.org/tpo/applications/application-services.git
tag_gpg_id: 1
gpg_keyring:
  - boklm.gpg
  - brizental.gpg
  - clairehurst.gpg
  - dan_b.gpg
  - henry.gpg
  - jwilde.gpg
  - ma1.gpg
  - morgan.gpg
  - pierov.gpg
git_submodule: 1
container:
  use_container: 1
  disable_network:
    build: '[% !c("var/generate_gradle_dependencies_list") %]'

var:
  build_number: 2
  gradle_version: 8.14.3
  # NSS version ans sha256 are in libs/build-all.sh.
  nss_version: '3.121'
  nspr_version: '4.38.2'
  nss_sha256sum: 76b9a1364bc4522abc652c4d676498d5062f502f64e38b32e9e2c7a3fff530f1
  cargo_vendor_include_config: 1

  application-services_versions_infos: '[% exec(c("basedir") _ "/tools/toolchain-updates/extract-application-services-versions-infos") %]'

targets:
  nightly:
    git_hash: '[% c("version") %]-TORBROWSER'
    tag_gpg_id: 0

  list_toolchain_updates:
    git_hash: 'v[% c("version") %]'

steps:
  build:
    filename: '[% project %]-[% c("version") %]-[% c("var/rebuild_date") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
    var:
      # Due to some issue in application-service causing non matching
      # builds when build time differ a lot, we need to do periodic rebuilds:
      # https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_requests/937#note_3009480
      rebuild_date: '2026-04-08'
      arch_deps:
        # Needed to build NSS
        - gyp
    input_files:
      - project: container-image
      - project: '[% c("var/compiler") %]'
        name: '[% c("var/compiler") %]'
      - project: android-sdk
        name: android-sdk
      - project: gradle
        name: gradle
      - project: rust
        name: rust
      - project: ninja
        name: ninja
      - project: uniffi-rs
        name: uniffi-rs
      - project: glean
        name: glean
        enable: '[% !c("var/generate_gradle_dependencies_list") %]'
      # Only Application Services currently requires build tools 35.
      # So, download them only here, rather than adding them to the shared
      # toolchain.
      - URL: 'https://dl.google.com/android/repository/build-tools_r35_linux.zip'
        name: build_tools_35
        sha256sum: bd3a4966912eb8b30ed0d00b0cda6b6543b949d5ffe00bea54c04c81e1561d88
      - URL: 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_[% c("var/nss_version") | replace("\\.", "_") %]_RTM/src/nss-[% c("var/nss_version") %]-with-nspr-[% c("var/nspr_version") %].tar.gz'
        name: nss
        sha256sum: '[% c("var/nss_sha256sum") %]'
      - 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/generate_gradle_dependencies_list") %]'
      - URL: '[% pc("glean-parser", "var/glean_wheels_url") %]'
        name: glean-wheels
        sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
        enable: '[% !c("var/generate_gradle_dependencies_list") %]'
      - name: cargo_vendor
        project: application-services
        pkg_type: cargo_vendor
        norec:
          sha256sum: df94ed5a82c6abb1d7fe49658753d2d3746bf9a2c1ba8faf555fe3a41ae67edb
        enable: '[% !c("var/generate_gradle_dependencies_list") %]'
      - filename: gen-gradle-deps-file.py
        enable: '[% c("var/generate_gradle_dependencies_list") %]'

    targets:
      # Run `make generate_gradle_dependencies_list-application-services` to
      # generate the gradle dependencies file. You can them move the file
      # `out/application-services/gradle-dependencies-list-$version.txt`
      # to `projects/application-services/gradle-dependencies-list.txt`.
      #
      # If you want to build from upstream applications-services (for example
      # if the rebase has not been done yet), you can use `make
      # generate_gradle_dependencies_list-application-services-unpatched`.
      generate_gradle_dependencies_list:
        filename: 'gradle-dependencies-list-[% c("version") %].txt'
        var:
          generate_gradle_dependencies_list: 1
