Bug 1808605 - part 2: Add `external-gradle-dependencies` task for fenix

fenix/112.0
Johan Lorenzo 2 years ago committed by mergify[bot]
parent 5a26e928fd
commit 26a47534d2

@ -1,35 +0,0 @@
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
set -ex
function get_abs_path {
local file_path="$1"
echo "$( cd "$(dirname "$file_path")" >/dev/null 2>&1 ; pwd -P )"
}
CURRENT_DIR="$(get_abs_path $0)"
PROJECT_DIR="$(get_abs_path $CURRENT_DIR/../../../..)"
pushd $PROJECT_DIR
. taskcluster/scripts/toolchain/android-gradle-dependencies/before.sh
NEXUS_PREFIX='http://localhost:8081/nexus/content/repositories'
GRADLE_ARGS="--parallel -PgoogleRepo=$NEXUS_PREFIX/google/ -PcentralRepo=$NEXUS_PREFIX/central/"
# We build everything to be sure to fetch all dependencies
./gradlew $GRADLE_ARGS assemble assembleAndroidTest testClasses ktlint detekt
# Some tests may be flaky, although they still download dependencies. So we let the following
# command fail, if needed.
set +e; ./gradlew $GRADLE_ARGS -Pcoverage test mozilla-detekt-rules:test mozilla-lint-rules:test; set -e
# ./gradlew lint is missing because of https://github.com/mozilla-mobile/fenix/issues/10439. So far,
# we're lucky and the dependencies it fetches are found elsewhere.
. taskcluster/scripts/toolchain/android-gradle-dependencies/after.sh
popd

@ -1,28 +0,0 @@
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# This is copy of
# https://searchfox.org/mozilla-central/rev/2cd2d511c0d94a34fb7fa3b746f54170ee759e35/taskcluster/scripts/misc/android-gradle-dependencies/after.sh.
# gradle-plugins was removed because it's not used in this project.
set -x -e
echo "running as" $(id)
: WORKSPACE ${WORKSPACE:=/builds/worker/workspace}
set -v
# Package everything up.
pushd $WORKSPACE
mkdir -p android-gradle-dependencies /builds/worker/artifacts
cp -R ${NEXUS_WORK}/storage/google android-gradle-dependencies
cp -R ${NEXUS_WORK}/storage/central android-gradle-dependencies
tar cf - android-gradle-dependencies | xz > /builds/worker/artifacts/android-gradle-dependencies.tar.xz
popd

@ -1,37 +0,0 @@
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# This is a copy of
# https://searchfox.org/mozilla-central/rev/2cd2d511c0d94a34fb7fa3b746f54170ee759e35/taskcluster/scripts/misc/android-gradle-dependencies/before.sh.
# `misc` was renamed into `toolchain` and `/builds/worker/workspace/build` was changed into
# `/builds/worker/checkouts/`
set -x -e
echo "running as" $(id)
: WORKSPACE ${WORKSPACE:=/builds/worker/workspace}
set -v
mkdir -p ${NEXUS_WORK}/conf
cp /builds/worker/checkouts/vcs/taskcluster/scripts/toolchain/android-gradle-dependencies/nexus.xml ${NEXUS_WORK}/conf/nexus.xml
PATH="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/:$PATH" RUN_AS_USER=worker /opt/sonatype/nexus/bin/nexus restart
# Wait "a while" for Nexus to actually start. Don't fail if this fails.
wget --quiet --retry-connrefused --waitretry=2 --tries=100 \
http://localhost:8081/nexus/service/local/status || true
rm -rf status
# It's helpful when debugging to see the "latest state".
curl http://localhost:8081/nexus/service/local/status || true
# Verify Nexus has actually started. Fail if this fails.
curl --fail --silent --location http://localhost:8081/nexus/service/local/status | grep '<state>STARTED</state>'
# It's helpful when debugging to see the repository configurations.
curl http://localhost:8081/nexus/service/local/repositories || true

@ -1,382 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<nexusConfiguration>
<version>2.8.0</version>
<nexusVersion>2.12.0-01</nexusVersion>
<globalConnectionSettings>
<connectionTimeout>20000</connectionTimeout>
<retrievalRetryCount>3</retrievalRetryCount>
<queryString></queryString>
</globalConnectionSettings>
<restApi>
<uiTimeout>60000</uiTimeout>
</restApi>
<httpProxy>
<enabled>true</enabled>
<port>8082</port>
<proxyPolicy>strict</proxyPolicy>
</httpProxy>
<routing>
<resolveLinks>true</resolveLinks>
</routing>
<repositories>
<repository>
<id>gradle-plugins</id>
<name>Gradle Plugins</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheActive>true</notFoundCacheActive>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<remoteStorage>
<url>https://plugins.gradle.org/m2/</url>
</remoteStorage>
<externalConfiguration>
<repositoryPolicy>RELEASE</repositoryPolicy>
<checksumPolicy>STRICT</checksumPolicy>
<fileTypeValidation>true</fileTypeValidation>
<downloadRemoteIndex>false</downloadRemoteIndex>
<artifactMaxAge>-1</artifactMaxAge>
<metadataMaxAge>1440</metadataMaxAge>
<itemMaxAge>1440</itemMaxAge>
<autoBlockActive>true</autoBlockActive>
</externalConfiguration>
</repository>
<repository>
<id>google</id>
<name>google</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheActive>true</notFoundCacheActive>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<remoteStorage>
<url>https://maven.google.com/</url>
</remoteStorage>
<externalConfiguration>
<repositoryPolicy>RELEASE</repositoryPolicy>
<!-- Google doesn't publish checksums. Why, Google, why? -->
<checksumPolicy>STRICT_IF_EXISTS</checksumPolicy>
<fileTypeValidation>true</fileTypeValidation>
<downloadRemoteIndex>false</downloadRemoteIndex>
<artifactMaxAge>-1</artifactMaxAge>
<metadataMaxAge>1440</metadataMaxAge>
<itemMaxAge>1440</itemMaxAge>
<autoBlockActive>true</autoBlockActive>
</externalConfiguration>
</repository>
<repository>
<id>central</id>
<name>Central</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheActive>true</notFoundCacheActive>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<remoteStorage>
<url>https://repo1.maven.org/maven2/</url>
</remoteStorage>
<externalConfiguration>
<proxyMode>ALLOW</proxyMode>
<artifactMaxAge>-1</artifactMaxAge>
<itemMaxAge>1440</itemMaxAge>
<cleanseRepositoryMetadata>false</cleanseRepositoryMetadata>
<downloadRemoteIndex>false</downloadRemoteIndex>
<checksumPolicy>WARN</checksumPolicy>
<repositoryPolicy>RELEASE</repositoryPolicy>
</externalConfiguration>
</repository>
<repository>
<id>apache-snapshots</id>
<name>Apache Snapshots</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheActive>true</notFoundCacheActive>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<remoteStorage>
<url>https://repository.apache.org/snapshots/</url>
</remoteStorage>
<externalConfiguration>
<proxyMode>ALLOW</proxyMode>
<artifactMaxAge>1440</artifactMaxAge>
<itemMaxAge>1440</itemMaxAge>
<cleanseRepositoryMetadata>false</cleanseRepositoryMetadata>
<downloadRemoteIndex>false</downloadRemoteIndex>
<checksumPolicy>WARN</checksumPolicy>
<repositoryPolicy>SNAPSHOT</repositoryPolicy>
</externalConfiguration>
</repository>
<repository>
<id>releases</id>
<name>Releases</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>ALLOW_WRITE_ONCE</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<externalConfiguration>
<proxyMode>ALLOW</proxyMode>
<artifactMaxAge>-1</artifactMaxAge>
<itemMaxAge>1440</itemMaxAge>
<cleanseRepositoryMetadata>false</cleanseRepositoryMetadata>
<downloadRemoteIndex>false</downloadRemoteIndex>
<checksumPolicy>WARN</checksumPolicy>
<repositoryPolicy>RELEASE</repositoryPolicy>
</externalConfiguration>
</repository>
<repository>
<id>snapshots</id>
<name>Snapshots</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>ALLOW_WRITE</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<externalConfiguration>
<proxyMode>ALLOW</proxyMode>
<artifactMaxAge>1440</artifactMaxAge>
<itemMaxAge>1440</itemMaxAge>
<cleanseRepositoryMetadata>false</cleanseRepositoryMetadata>
<downloadRemoteIndex>false</downloadRemoteIndex>
<checksumPolicy>WARN</checksumPolicy>
<repositoryPolicy>SNAPSHOT</repositoryPolicy>
</externalConfiguration>
</repository>
<repository>
<id>thirdparty</id>
<name>3rd party</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheTTL>1440</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>ALLOW_WRITE_ONCE</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<externalConfiguration>
<proxyMode>ALLOW</proxyMode>
<artifactMaxAge>-1</artifactMaxAge>
<itemMaxAge>1440</itemMaxAge>
<cleanseRepositoryMetadata>false</cleanseRepositoryMetadata>
<downloadRemoteIndex>false</downloadRemoteIndex>
<checksumPolicy>WARN</checksumPolicy>
<repositoryPolicy>RELEASE</repositoryPolicy>
</externalConfiguration>
</repository>
<repository>
<id>central-m1</id>
<name>Central M1 shadow</name>
<providerRole>org.sonatype.nexus.proxy.repository.ShadowRepository</providerRole>
<providerHint>m2-m1-shadow</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheTTL>15</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<localStorage>
<provider>file</provider>
</localStorage>
<externalConfiguration>
<masterRepositoryId>central</masterRepositoryId>
<syncAtStartup>false</syncAtStartup>
</externalConfiguration>
</repository>
<repository>
<id>public</id>
<name>Public Repositories</name>
<providerRole>org.sonatype.nexus.proxy.repository.GroupRepository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheTTL>15</notFoundCacheTTL>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<localStorage>
<provider>file</provider>
</localStorage>
<externalConfiguration>
<mergeMetadata>true</mergeMetadata>
<memberRepositories>
<memberRepository>releases</memberRepository>
<memberRepository>snapshots</memberRepository>
<memberRepository>thirdparty</memberRepository>
<memberRepository>central</memberRepository>
</memberRepositories>
</externalConfiguration>
</repository>
</repositories>
<repositoryGrouping>
<pathMappings>
<pathMapping>
<id>inhouse-stuff</id>
<groupId>*</groupId>
<routeType>inclusive</routeType>
<routePatterns>
<routePattern>^/(com|org)/somecompany/.*</routePattern>
</routePatterns>
<repositories>
<repository>snapshots</repository>
<repository>releases</repository>
</repositories>
</pathMapping>
<pathMapping>
<id>apache-stuff</id>
<groupId>*</groupId>
<routeType>exclusive</routeType>
<routePatterns>
<routePattern>^/org/some-oss/.*</routePattern>
</routePatterns>
<repositories>
<repository>releases</repository>
<repository>snapshots</repository>
</repositories>
</pathMapping>
</pathMappings>
</repositoryGrouping>
<repositoryTargets>
<repositoryTarget>
<id>1</id>
<name>All (Maven2)</name>
<contentClass>maven2</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>2</id>
<name>All (Maven1)</name>
<contentClass>maven1</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>3</id>
<name>All but sources (Maven2)</name>
<contentClass>maven2</contentClass>
<patterns>
<pattern>(?!.*-sources.*).*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>4</id>
<name>All Metadata (Maven2)</name>
<contentClass>maven2</contentClass>
<patterns>
<pattern>.*maven-metadata\.xml.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>any</id>
<name>All (Any Repository)</name>
<contentClass>any</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>site</id>
<name>All (site)</name>
<contentClass>site</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>npm</id>
<name>All (npm)</name>
<contentClass>npm</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>nuget</id>
<name>All (nuget)</name>
<contentClass>nuget</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
<repositoryTarget>
<id>rubygems</id>
<name>All (rubygems)</name>
<contentClass>rubygems</contentClass>
<patterns>
<pattern>.*</pattern>
</patterns>
</repositoryTarget>
</repositoryTargets>
<smtpConfiguration>
<hostname>smtp-host</hostname>
<port>25</port>
<username>smtp-username</username>
<password>{jyU2gDFaNz8HQ4ybBAIdtJ6KL+YB08GXQs7vLPnia3o=}</password>
<systemEmailAddress>system@nexus.org</systemEmailAddress>
</smtpConfiguration>
<notification />
</nexusConfiguration>

@ -1,13 +0,0 @@
#!/bin/bash
export ANDROID_SDK_ROOT=$MOZ_FETCHES_DIR
# For the Android build system we want Java 11. However this version of sdkmanager requires Java 8.
JAVA8PATH="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/:$PATH"
yes | PATH=$JAVA8PATH "${ANDROID_SDK_ROOT}/tools/bin/sdkmanager" --licenses
# It's nice to have the build logs include the state of the world upon completion.
PATH=$JAVA8PATH "${ANDROID_SDK_ROOT}/tools/bin/sdkmanager" --list
tar cf - -C "$ANDROID_SDK_ROOT" . --transform 's,^\./,android-sdk-linux/,' | xz > "$UPLOAD_DIR/android-sdk-linux.tar.xz"
Loading…
Cancel
Save