# vim: filetype=yaml sw=2
version: 140.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

var:
  build_number: 7
  # This should be updated when the list of gradle dependencies is changed.
  gradle_dependencies_version: 13
  gradle_version: 8.13
  nss_version: '3.110'
  nspr_version: '4.36'

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

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: '2025-06-12'
      arch_deps:
        # Needed to build NSS
        - gyp
    input_files:
      - project: container-image
        pkg_type: build
      - project: '[% c("var/compiler") %]'
        name: '[% c("var/compiler") %]'
        pkg_type: build
      - project: gradle
        name: gradle
        pkg_type: build
      - project: rust
        name: rust
        pkg_type: build
      - project: ninja
        name: ninja
        pkg_type: build
      - project: uniffi-rs
        name: uniffi-rs
        pkg_type: build
      - project: glean
        name: glean
        pkg_type: build
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
      # 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
      # NSS version ans sha256 are in libs/build-all.sh.
      - 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: 96114bef9e9692dda6e7793da26fedef0dc0449c3644ebe1122464e599a39dc0
      - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
        name: gradle-dependencies
        exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
      - URL: '[% pc("glean-parser", "var/glean_wheels_url") %]'
        name: glean-wheels
        sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
      - name: cargo_vendor
        project: application-services
        pkg_type: cargo_vendor
        norec:
          sha256sum: 40497b315d225ef9e0066f67e96b48b9848fa158268af2c3b4031e93dfb1790f
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
      - filename: gen_gradle_deps_file.sh
        enable: '[% c("var/fetch_gradle_dependencies") %]'

  list_toolchain_updates:
    git_hash: 'v[% c("version") %]'
    input_files: []
    container:
      use_container: 0

  get_gradle_dependencies_list:
    filename: 'gradle-dependencies-list-[% c("version") %].txt'
    get_gradle_dependencies_list: '[% INCLUDE build %]'
    var:
      fetch_gradle_dependencies: 1
