Граф коммитов

81 Коммитов

Автор SHA1 Сообщение Дата
Ben Dean-Kawamura eac793d16a Updating Android NDK to 25c 2023-03-30 09:55:52 -04:00
Ryan VanderMeulen 6fa406f804 Upgrade NDK to r25b. 2023-03-30 09:55:52 -04:00
Ben Dean-Kawamura 70e3e9defe Fixing branch build APK output 2023-03-28 13:38:50 -04:00
Ryan VanderMeulen e27985157b Remove obsolete tooling-nimbus-gradle AC project 2023-03-10 11:36:53 -05:00
Ryan VanderMeulen ef3fc8c4e6 Update Android platform version to 33 2023-03-06 10:41:52 -05:00
Ryan VanderMeulen 9fc9c078fb Update Android SDK build tools to version 33.0.2 2023-03-06 10:41:52 -05:00
Ryan VanderMeulen 1e7ffc1f97 Actually use the ANDROID_NDK_VERSION variable 2023-03-06 10:41:52 -05:00
Ben Dean-Kawamura b3d34a8d86 Updating branch build code
Updating the code now that fenix lives in firefox-android.  This
actually simplifies things quite a bit.

Renamed the parameter from `ff-android` to `firefox-android`.  I don't
think we need to abbreviate it now that it's the only branch-build parameter.
2023-02-24 20:19:48 -05:00
Ryan VanderMeulen 445969b7d2 Remove obsolete lib-crash-sentry-legacy and tooling-glean-gradle AC projects 2023-02-24 15:30:47 -05:00
Julien Cristau b15cf6acd1 ci: bump taskgraph and its dependencies 2023-02-13 15:01:36 +01:00
Ryan VanderMeulen 4f816ece4c Update Android commandlinetools to version 9.0 2023-02-07 16:56:36 -05:00
Sammy Khamis dca2ada6ab
Remove MinGW support on windows (#5243) 2022-11-18 11:46:25 -10:00
Ben Dean-Kawamura f3719bd194 Updating branch build code to work with firefox-android (#5218)
Also, updating the branch build code to work with owner references with
a colon, like `bendk:my-branch`.  This is what you get when clicking the
github copy branch name button.
2022-11-04 10:02:38 -04:00
Michelle 2da75a6557
Bug 1798751 - Migrate application-services from AWS to GCP (#5219)
Co-authored-by: Tarik Eshaq <teshaq@mozilla.com>
2022-11-03 18:36:58 -06:00
Ben Dean-Kawamura 40f7b3e061 Reverting the Android NDK upgrade (#5165) 2022-10-12 16:13:37 -04:00
Ben Dean-Kawamura 3038282e61 Revert "update cross compile tool (#4898)"
This reverts commit 15b00bf9c4.
2022-10-12 14:25:20 -04:00
Sammy Khamis 15b00bf9c4
update cross compile tool (#4898)
update cross compile tool for M1 macs
2022-10-11 11:45:37 -10:00
Ryan VanderMeulen 3e570bae3a Upgrade NDK to r25b. 2022-09-19 21:37:56 -04:00
Ryan VanderMeulen d5a639d758 Update some Android build tools 2022-08-17 14:25:57 -04:00
Ben Dean-Kawamura 00d31d4a52 Updating android-component-projects.json
Removed the support-migration component, which was removed on the a-c
side.  Also added support-rusterrors and lib-auth.

Updated `update-branch-build-components.py` to pretty print the JSON
file.  This should make the diffs nicer in the future.
2022-08-15 09:54:50 -04:00
Ben Dean-Kawamura 34544f44cc Limit the dependency count for the nightly alert task (#5043) 2022-07-21 16:19:40 -04:00
Ben Dean-Kawamura e70411db6f Added task to alert slack on nightly failures
Added deps_complete transform to power this.  Maybe this could be a
generic taskgraph transform.
2022-07-11 13:28:21 -04:00
bendk ebec9233d7
Fix a-c and fenix branch build tests (#4932)
- Made the android-components tests work more like the ones from android-components CI
  - Split up the tests by project
  - Updated which gradle tasks we run and allow the tasks to vary
    per-project.  My goal was to make this equivelent to the
    android-components `taskcluster/ci/build/kind.yml` file.
- Updating android platform verison to 31
- Download robolectric and maven ahead of time, this seems to fix the
  test errors.
- Build all architectures, not just x86
- Customize fetches based on which repo we're building from.  This makes
  each task fetch less total data, which seems to fix some intermittent
  errors I was seeing.
- Added a `git rev-parse` to the pre-gradlew commands.  This way we can
  easily see the commit IDs.
- Update branch build regex:
  - Allow specifying the repo owner
  - allow '.' chars
  - Support both `a-c: [branch]` and `ac: [branch]`
2022-05-19 19:50:13 -04:00
Travis Long 7189457853
[ci full] Nimbus using Glean Rust Bindings (#4759) 2022-05-11 16:50:51 -05:00
bendk 016271ece8
Removed the code to add indexes to the nightly tasks (#4955)
This didn't work out well in practice, since an index can only store one
task.  So if we have all the branch build task using the same index,
whichever one runs last wins.  I think what we really want is to index
the task group, but I don't think that's possible.  Probably the best we
can do is what was already there by default, which is to index the
decision task, then find the task group from that.

Also fixed the spelling of "nightly" in the test param YAML file.
2022-05-10 15:46:30 -04:00
bendk 42e0c7a093
Fix "Nightly" spelling (#4952) 2022-05-09 14:19:50 -04:00
bendk ced0518e9f
Fixes for nighly builds (#4938)
Added a `route` to our nightly branch build tasks.  I think this should
mean we can view the latest branch builds via a taskcluster index.

Moved the code to calculate if we're in a nightly into the top-level
`get_decision_parameters()` function.  It seems good to put this in one
place, especially since the way we determine if we're in a nightly build
is pretty hacky.
2022-05-05 10:13:46 -04:00
bendk 44a74c067d
Include branch build tasks for our nightly (#4931)
I think this is needed to make the nightly builds work properly.
2022-05-02 17:09:27 -04:00
bendk 315cc324e6
Add `rust-toolchain.toml` rust toolchain task resources (#4926)
I think this should make it so we rebuild the toolchain when this file
changes and will unbreak our builds.
2022-04-27 15:56:17 -04:00
Ben Dean-Kawamura d58b11da62 Added branch build support
Added new CI tasks to run branch builds.

These can be triggered from a PR by adding `[ac: {branch-name}]` and/or
`[fenix: {branch-name}]` on the PR title.

I also added a nightly build cron-job that runs a branch build using the
main branch from all 3 repos.

Updated our Dockerfile so that it can build a-c.
2022-04-21 12:02:36 -04:00
Andrew Halberstadt cc4434568f Bootstrap Taskgraph from pypi in decision task
Releng has tweaked the recommended way of bootstrapping Taskgraph from a
clone + checkout pinned revision, to Pypi and a requirements.txt.

This provides a few benefits:
1. Since Taskgraph uses SemVer, updating will provide a hint if there
   will be backwards incompatible changes.
2. Using version numbers is nicer than revisions (e.g, Taskgraph's
   CHANGELOG will be useful).
3. Provides a mechanism to pin other non-Taskgraph dependencies.

The reason I'm submitting this now is I'd like to migrate Taskgraph to a
new repository. By moving consumers over to Pypi first, the migration
can happen seamlessly without breaking anything.

Jira: RELENG-816
2022-03-14 09:50:42 -04:00
Ben Dean-Kawamura c60721eb4c Move Rust setup a toolchain task
Created a rust toolchain task that installs the rust components we use
for building and uploads them as artifacts.  This needs to run before
the other toolchain tasks, so I made a new kind called `early-toolchain`
for it.

Made the other tasks depend on this, and have them download and unpack
the artifact before starting.

This allows us to do this setup once rather than multiple times.

Moved functionality from `rustup-setup.sh` to other places:
  - The Dockerfile now sets the ENV variables and installs `rustup`.
    Note that we now always set `-Dwarnings`, before we didn't set if
    for releases because of the corner case where we cherry-picked code
    that had warnings from newer Rust versions (#3480).  Now that we pin
    the Rust version with our `rust-toolchain`, I don't think this is an
    issue anymore.
  - The task itself now runs `git submodule --init`

Moved the Rust installation code from `cross-compile-setup.sh` to the
new `rust.yml` task.
2022-03-09 11:36:26 -05:00
Ben Dean-Kawamura 1759dc2ecb Fixing bash-lint errors 2022-03-09 11:36:26 -05:00
Ben Dean-Kawamura 07a7f542c3 Updating libs/scripts to require Java 11 2021-09-14 13:08:29 -04:00
Tarik Eshaq fe9870b9a9
Runs cargo update [ci full] (#4407)
* Runs cargo update

* Interpret taskcluster scrips using python3
2021-08-24 14:59:07 -07:00
Andrew Halberstadt 6662a74ab7
Run taskgraph generation with Python 3 (#4394)
* Update to latest taskgraph and decision-mobile image

See also RELENG-658.

* Fixes #4393 - Run taskgraph generation with Python 3

See also RELENG-658.

* Run 'pyupgrade --py36-plus' on taskcluster/ directory

* Remove unused imports from taskcluster/ directory
2021-08-23 08:25:28 -10:00
Ryan Kelly 702f1d8e47 Verify desktop build environment when verifying for mobile.
It's reasonable for mobile-focused consumers to want to be able
to do a quick `cargo build` to test their local checkout, and it's
not reasonable for us to expect them to understand how or why this
is different from building inside Xcode or Android Studio. Let's
help make this Just Work (tm) by verifying the Desktop development
environment whenever we verify a Mobile development environment.
2021-07-27 07:51:06 +10:00
Ryan Kelly e31161e607 Run all android tests at once when cutting a release.
Prior to the commit, the Taskcluster job for each individual component
would execute `./gradlew component:test` and would thus need to build
the Rust code for the megazord.

With this commit, each of those tasks now depend on the existing
`android-build` task which knows how to run all the tests in a single
build. This should reduce the number of times we have to build the
megazord from once-per-components to just once. (Plus the independent
builds we do for actually publishin the megazord).
2021-07-19 14:03:17 +10:00
Ryan Kelly e067d0aa63 Reduce gradle task dependencies on megazord build.
Prior to this commit, the gradle tasks for building and for testing
each component would depend on the "cargoBuild" gradle task of the
megazord, which means they would built it for all configured targets.
In TaskCluster we configure *seven* targets, so each `module-build-X`
TaskCluster job will build the full megazord seven times.

This commit makes two changes:

* Building the gradle package of a component no longer depends on
  building the megazord at all. We doesn't actually need to the
  Rust code built in order to package up the Kotlin files, and I
  think this dependency was a hangover from when each component
  used to build its own individual Rust library.
* Running the gradle tests of a component now depends only on
  building the megazord for the native host platform, since that's
  the only one that is actually needed for running the tests.

Given that we have 11 components that depend on the megazord,
each of which will now avoid building 6 useless copies of it
for non-native platforms, I expect this will save a total of
66 expensive `cargo build` invocations in a full TaskCluster run.

I've also included a few other tweaks to do less unnecessary
work in TaskCluster, which seem to save about a minute on the
much-more-common `android-build-pr` task.
2021-07-19 13:40:43 +10:00
Ryan Kelly 27ca9bf548
Update rust and rustup config in CircleCI.
This fixes #4108, getting our CircleCI tests passing again with
RUSTUP_TOOLCHAIN="beta". It's a bit of a circuitous fix but I
think it's worthwhile taking this approach.

As noted over in #4108, the `circleci/rust` docker image configures
rustup to use its "minimal" profile by default, which means it doesn't
automatically install `rustup` into non-default toolchains, which was
causing problems for our tests.

According to a Google search for "CircleCI Rust" and to the note at
the top of [1], the `circleci/rust` image is considered legacy and has
been replaced by `cimg/rust`. This new image uses the "default" rustup
profile, meaning it will more closely match the experience of executing
Rust tooling on your local machine, and in particular will install
`rustfmt` by default in all toolchains.

This new `cimg/rust` image does not support a `:latest` tag, and instead
requires you to specify an explicit version of the Rust toolchain to
use. To avoid duplicating this information in many places, I've used the
"executors" feature of CircleCI to consolidate the details of the docker
image in a single place.

Since I was defining some executors anyway, I also took the opportunity
to consolidate the details of the "macos" executor, so if we want to
bump the version of xcode in future it can be done in a single place.

Finally, I updated the version of `rustup-init` that is used to boostrap
the Rust tooling on the macos executor and in taskcluster. This isn't
necessary, but I did it as part of investigating the fix here and it
seemed worthwhile to keep.

[1] https://circleci.com/developer/images/image/cimg/rust
2021-05-18 12:26:39 +10:00
Ryan Kelly e94c0a7f7f Automagically manage rust version and targets via toolchain config.
We originally landed this change in #3936 but had to revert it due
to release build issues. As far as I can tell, those were due to
mismatches between our use of a rust-toolchain file for repos-specific
config, and our CI scripts that try to configure the default rustup
toolchain.

This commit moves as much rustup config as possible into the toolchain
file, where we can maintain it in a single consistent place.
2021-03-19 14:12:11 +11:00
Ryan Kelly c1eb89c466 Disable building win32 release artifacts.
We are hitting some build errors on win32 with the latest release.
I think this may be due to the upgrade to Rust 1.50, and will see
what I can do to resolve it. But in the meantime we need to be
able to cut releases, and disabling the win32 artifacts seems like
the shortest path to that outcome.

In practise, this will mean that Android developers will not be
able to run unittests that use Application Services code if they
are on a Windows machine, since they won't have an appropriate
`.so` file from which to load the appservices code.
2021-03-10 16:01:04 +11:00
Dan Mosedale 6c5e4dabb4 Staple application-services to rust 1.50 (fixes SYNC-2077) 2021-03-09 16:26:27 +11:00
Ryan Kelly 056f4e7ef8 Add `cargo uniffi-bindgen` alias for running uniffi-bindgen.
This is an attempt to simplify how we use `uniffi-bindgen`, by making
it easy to run the version used by the workspace rather than assuming
that the user has a correctly-matching version of it installed in their
system cargo.
2021-02-25 16:13:05 +11:00
Ryan Kelly 6ae354d195
Install correct version of uniffi on taskcluster. (#3890) 2021-02-25 15:28:45 +11:00
Mark Hammond 56ebbfc9fc
Update nimbus-sdk to v0.7.1 (#3836) 2021-01-28 15:17:22 +11:00
Ryan Kelly fbf5ed81f7 Update nimbus-sdk to v0.6.4 2020-12-17 07:32:31 +11:00
Ryan Kelly 3190e0f878 Update changelog for upcoming release. 2020-12-09 10:47:25 +11:00
Ryan Kelly 260d10e19c
Import nimbus-sdk as submodule, republish as part of the megazord.
This commit pulls in https://github.com/mozilla/nimbus-sdk as a
git submodule, and adds some build integration to publish it as
part of the application-services megazord. Instead of an all-in-one
nimbus package, we produce two separate packages:

* `org.mozilla.appservices:nimbus` with the Nimbus Kotlin code
* `org.mozilla.appservices:full-megazord` updated to include the
  Nimbus Rust code.
2020-11-09 16:40:21 +11:00
Ryan Kelly 24d8ceeb21
Revert "Import nimbus-sdk as submodule, republish as part of the megazord."
Nimbus SDK and its dependencies are not currently compatible with
Rust v1.43.0, but application-services is pinned to that version
of rust for compatibility with mozilla-central.

This reverts commit 8388372259.
2020-11-09 14:16:50 +11:00