Verified Commit 0e05b1e9 authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame 🎃
Browse files

Bug 41485: Automate the Gradle deps update (Application Services).

parent 5bbb5bef
Loading
Loading
Loading
Loading
+45 −40
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64

[% INCLUDE 'fake-git' %]

[% IF !c('var/fetch_gradle_dependencies') %]
[% IF !c('var/generate_gradle_dependencies_list') -%]
  tar -xf [% c('input_files_by_name/glean') %]

  gradle_repo=/var/tmp/dist/gradle-dependencies
@@ -33,7 +33,7 @@ export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
  cp -rl $gradle_repo/dl/android/maven2/* $gradle_repo || true
  cp -rl $gradle_repo/m2/* $gradle_repo || true
  cp -rl $gradle_repo/maven2/* $gradle_repo || true
[% END %]
[% END -%]

tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]

@@ -41,12 +41,13 @@ mv /var/tmp/build/[% project %]-[% c('version') %] $builddir

cd $builddir

[% IF !c('var/generate_gradle_dependencies_list') -%]
  # Prepare the offline build.

  tar -xf $rootdir/[% c('input_files_by_name/glean-wheels') %]
  export GLEAN_PYTHON_WHEELS_DIR=$builddir/glean-wheels
# Setting GLEAN_PYTHON_WHEELS_DIR is not enough: a Rust build script will still
# try to install Glean with pip.
  # Setting GLEAN_PYTHON_WHEELS_DIR is not enough: a Rust build script will
  # still try to install Glean with pip.
  cat > $rootdir/pip.conf << 'EOF'
[global]
find-links = /var/tmp/build/application-services/glean-wheels
@@ -59,6 +60,7 @@ tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cargo_vendor') %]
  # Make sure our vendored crates are used for offline builds.
  cat vendor/cargo-config.toml >> .cargo/config.toml
  rm vendor/cargo-config.toml
[% END -%]

tar -xf $rootdir/[% c('input_files_by_name/uniffi-rs') %]

@@ -68,19 +70,18 @@ ln -s $rootdir/[% c("input_files_by_name/nss") %] ./
./build-all.sh android
popd

[% IF c('var/fetch_gradle_dependencies') %]
  # XXX: `assemble` is still not enough to see all fetched dependencies via
  # Gradle's --debug. See: tor-browser-build#40056.
  gradle --debug --no-daemon assemble > gradle.log 2>&1 || ( cat gradle.log; exit 1 )
  $rootdir/gen_gradle_deps_file.sh gradle.log
  mv gradle-dependencies-list.txt '[% dest_dir _ "/" _ c("filename") %]'
[% ELSE %]
# We need to set `LC_ALL` and `LANG` to something that is not ASCII as encoding
# otherwise `click` barfs. See: https://click.palletsprojects.com/python3/
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
  gradle_flags="--offline --no-daemon -PuniffiBindgenNoop=$builddir/uniffi-rs/uniffi-bindgen -PgradleDependenciesUrl=file:///var/tmp/dist/gradle-dependencies"
  gradle $gradle_flags assembleRelease
[% IF !c('var/generate_gradle_dependencies_list') -%]
  deps_flags="--offline -PgradleDependenciesUrl=file:///var/tmp/dist/gradle-dependencies"
[% ELSE -%]
  deps_flags="--info"
  gradle_logs=/var/tmp/build/gradle-logs.log
[% END -%]
gradle_flags="$deps_flags --no-daemon -PuniffiBindgenNoop=$builddir/uniffi-rs/uniffi-bindgen"
gradle $gradle_flags assembleRelease [% IF c('var/generate_gradle_dependencies_list') %]2>&1 | tee -a $gradle_logs[% END %]
gradle $gradle_flags publish
mv build/maven $distdir

@@ -89,9 +90,13 @@ popd
popd
cp target/release/nimbus-fml $distdir

[% IF c('var/generate_gradle_dependencies_list') -%]
  cd $distdir
  $rootdir/gen-gradle-deps-file.py $gradle_logs
[% END -%]

cd /var/tmp/dist
[% c('tar', {
    tar_src => [ project ],
    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
  }) %]
[% END %]
+11 −12
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ gpg_keyring:
git_submodule: 1
container:
  use_container: 1
  disable_network:
    build: '[% !c("var/generate_gradle_dependencies_list") %]'

var:
  build_number: 1
@@ -23,6 +25,9 @@ var:
  nss_version: '3.117'
  nspr_version: '4.37'
  cargo_vendor_include_config: 1
  # Uncomment this to run an online build to grab an updated
  # gradle-dependencies-list.txt.
  # generate_gradle_dependencies_list: 1

targets:
  nightly:
@@ -61,7 +66,7 @@ steps:
      - project: glean
        name: glean
        pkg_type: build
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
        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.
@@ -75,28 +80,22 @@ steps:
      - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
        name: gradle-dependencies
        exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
        enable: '[% !c("var/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/fetch_gradle_dependencies") %]'
        enable: '[% !c("var/generate_gradle_dependencies_list") %]'
      - name: cargo_vendor
        project: application-services
        pkg_type: cargo_vendor
        norec:
          sha256sum: 8a93a189985ad28c334970dc5ab386c81d4a415f3777c2941248f836f4af44fd
        enable: '[% !c("var/fetch_gradle_dependencies") %]'
      - filename: gen_gradle_deps_file.sh
        enable: '[% c("var/fetch_gradle_dependencies") %]'
        enable: '[% !c("var/generate_gradle_dependencies_list") %]'
      - filename: gen-gradle-deps-file.py
        enable: '[% c("var/generate_gradle_dependencies_list") %]'

  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