Task Kinds ========== This section lists and documents the additional task kinds that are specific to Thunderbird and are implemented in it's source tree. balrog ------ Submits update information to Balrog for shippable builds after artifacts have been promoted. beetmover-checksums ------------------- Publishes checksum files for promoted artifacts to the public release location via Beetmover. beetmover-repackage ------------------- Publishes repackaged (and localized) installer artifacts and related files via Beetmover for promoted builds. beetmover-source ---------------- Publishes signed source archives via Beetmover for releases. beetmover-strings-source ------------------------ Publishes strings source files via Beetmover to FTP. bouncer-locations ----------------- Updates Bouncer product locations (download endpoints) for Thunderbird nightlies and releases during the shipping phase. build ----- Builds Thunderbird and generate relevant artifacts (installers, packages, test archives, etc.). build-mac-notarization ---------------------- Notarizes macOS build artifacts after they have been signed. build-mac-signing ----------------- Signs macOS build artifacts (PKG/DMG/TAR). build-signing ------------- Signs platform build artifacts for shippable builds (e.g. Windows installers). code-review ----------- Automation to support code review workflows (e.g. Phabricator/Lando hooks). docker-image ------------ Builds Docker images used as worker environments by other kinds. fetch ----- Fetches and cache external resources (e.g. toolchains, source archives) that are consumed by other tasks. l10n ---- Schedules localization tasks and produce locale metadata consumed by downstream l10n repackaging and update tasks. l10n-bump --------- Bumps Thunderbird localization changesets. l10n-pre -------- Prepares strings tarball used by shippable localization jobs. mar-signing ----------- Sign complete MAR (update) packages for promoted builds. mar-signing-l10n ---------------- Sign localized MAR (update) packages for promoted builds. merge-automation ---------------- Hook-driven tasks that automate "Merge Day" tasks (e.g. version bumps, branch merges across comm-* branches, etc.). packages -------- Builds packages for use in docker images. partials -------- Takes the complete.mar files produced in previous tasks and generates partial updates between previous nightly releases and the new one. Requires a release_history in the parameters. See `mach release-history` if doing this manually. partials-signing ---------------- Signs partial update MARs produced by `partials`. pin-verify ---------- Verifies that `gecko_rev.yml` is pinned to a Firefox tag on releases. post-balrog-dummy ----------------- Dummy task used after Balrog submissions to avoid `max_dependencies` limits. post-beetmover-checksums-dummy ------------------------------ Dummy task used after Beetmover checksum publication to avoid `max_dependencies` limits. post-beetmover-dummy -------------------- Dummy task used after Beetmover publication to avoid `max_dependencies` limits. release-balrog-scheduling ------------------------- Schedules a Release for shipping in Balrog. If a `release_eta` was provided when starting the Release, it will be scheduled to go live at that day and time. release-balrog-submit-toplevel ------------------------------ Top-level Balrog submission wrapper used by the release promotion graph. release-beetmover-push-to-release --------------------------------- Moves artifacts from the candidates area to the releases directory on the CDN via Beetmover. release-beetmover-source-checksums ---------------------------------- Publishes checksums for source archives as part of release promotion. release-bouncer-aliases ----------------------- Updates Bouncer's (download.mozilla.org) "latest" aliases. release-bouncer-check --------------------- Validates that Bouncer products and locations are consistent for a release. release-bouncer-sub ------------------- Submits Bouncer product and location definitions required for a release. release-early-tagging --------------------- Creates early tags and related version markers used by the release process. release-final-verify -------------------- Verifies the contents and package of release update MARs. release-flatpak-push -------------------- Pushes Thunderbird Flatpak artifacts to Flathub. release-flatpak-repackage ------------------------- Repackages Thunderbird as both Flatpak bundle and Flatpak repo artifacts. release-generate-checksums -------------------------- Generates checksums for release artifacts. release-generate-checksums-beetmover ------------------------------------ Publishes generated checksum files via Beetmover as part of release promotion. release-generate-checksums-signing ---------------------------------- Signs checksum files generated for a release. release-mark-as-shipped ----------------------- Marks a release as shipped in Ship-It. release-msix-push ----------------- Pushes MSIX artifacts to the Microsoft Store. release-notes-verify -------------------- Verifies that the release notes for a given release have been published. release-notify-av-announce -------------------------- Notifies anti-virus vendors that a new Thunderbird release is available for scanning. release-notify-promote ---------------------- Sends “promote” phase notifications for a release. release-notify-push ------------------- Sends “push” phase notifications for a release. release-notify-ship ------------------- Sends “ship” phase notifications for a release. release-notify-started ---------------------- Sends “started” notifications when a release promotion begins. release-push-langpacks ---------------------- Publishes language packs (XPIs) to addons.thunderbird.net. release-snap-repackage ---------------------- Repackages Thunderbird as Snap for testing purposes. release-source -------------- Creates source archives (tarballs) for a release. release-source-checksums-signing -------------------------------- Signs checksum files for source archives created during a release. release-source-signing ---------------------- Signs source archives created during a release. release-update-product-channel-version ------------------------------------- Updates product, channel, and version metadata in Ship-It. release-update-verify --------------------- Verifies the contents and package of release update MARs. release-update-verify-config ---------------------------- Creates configuration files used by `release-update-verify`. release-update-verify-config-next --------------------------------- Creates configuration files used by `release-update-verify-next`. release-update-verify-next -------------------------- Verifies the contents and package of release and updare MARs from the previous ESR release. release-version-bump -------------------- Bumps version number and related metadata changes during the release process. repackage --------- Repackages build outputs into platform-specific installer formats (e.g. DMG, MSI, tarballs). repackage-deb ------------- Repackages Thunderbird as a Debian package (.deb). repackage-deb-l10n ------------------ Creates localized Debian packages (.deb) from `repackage-deb` .deb artifact. repackage-l10n -------------- Repackages localized builds for all locales using `l10n` artifacts. repackage-msi ------------- Repackages Thunderbird as a Windows MSI package. repackage-msix -------------- Repackages Thunderbird as a Windows MSIX package. repackage-shippable-l10n-msix ----------------------------- Creates localized Windows MSIX packages. repackage-signing ----------------- Signs repackaged (Windows) artifacts. repackage-signing-l10n ---------------------- Signs localized repackaged (Windows) artifacts. repackage-signing-msi --------------------- Signs repackaged MSI artifacts. repackage-signing-msix ---------------------- Signs repackaged MSIX artifacts. repackage-signing-shippable-l10n-msix ------------------------------------- Signs localized repackaged MSIX artifacts for shippable localized builds. repo-update ----------- Tasks that perform some action on the project repo itself in order to update its state in some way. searchfox --------- Generates C++ index data for Searchfox. shippable-l10n -------------- Repacks a shippable build from the nightly l10n task, in order to provide localized versions of the same source. shippable-l10n-mac-notarization ------------------------------- Mac notarization on signingscript (linux) using rcodesign. Only available in production environments, as Apple doesn't offer a test endpoint for notarizing apps. Downstream tasks should use build-mac-signing in non-shippable builds or level 1 environments. shippable-l10n-mac-signing -------------------------- Signs localized macOS artifacts without notarization (using a self-signed certificate on level 1 environments). Shippable downstream tasks should use artifacts from build-mac-notarization. shippable-l10n-pre ------------------ Prepares a build artifact containing the translated strings from all locales. The artifact is consumed by `shippable-l10n` to produce the localized Thunderbird builds. Using ..... - kind-dependencies: Must include `build` - transforms: Must include `comm_taskgraph.transforms.l10n_pre:transforms` - only-for-attributes: Must include `shippable` - only-for-build-platforms: This is set to `linux64-shippable/opt` so that it only runs for that platform. All platforms will consume the build artifact from `linux64-shippable/opt`. (It's just string data; nothing platform-specific in there.) Parameters .......... There are some task parameters specific to this task kind. - locale-list: Points to either `shipped-locales` or `all-locales`. This file is used to select the locales that are included in the build artifact. - comm-locales-file: This file contains the revision of the `comm-l10n` monorepo to checkout. - browser-locales-file: This file contains the revisions of the `l10n-central` repositories to checkout. This is for toolkit and other strings used from mozilla-central. Other notes ........... The mozharness script reads its configuration from `thunderbird_split_l10n.py`. In that file, `hg_l10n_base` refers to the `l10n-central` repository root. This is used with `browser-locales-file` to get the strings from toolkit and devtools that are needed. Also in the mozharness config file is `hg_comm_l10n_repo`, set to the URL of the `comm-l10n` monorepo. The mozharness script will clone the necessary repositories from `l10n-central`, and `comm-l10n`, merge them, and create a tar file. shippable-l10n-pre-signing -------------------------- Signs artifacts from `shippable-l10n-pre`. shippable-l10n-signing ---------------------- Takes artifacts from the shippable-l10n kind and passes them to signing servers to have their contents signed appropriately, based on an appropriate signing format. One signing job is created for each shippable-l10n job (usually chunked). source-docs ----------- Triggers a build of the in-tree source documentation at source-docs.thunderbird.net. source-test ----------- Runs source-level tests and analysis that do not require a full build. This can include linting, unit tests, source-code analysis, or measurement work. While source-test tasks run from a source checkout, it is still possible for them to depend on a build artifact, though often they do not. test ---- Runs Thunderbird test suites against build artifacts (e.g. xpcshell, mochitests, etc.). toolchain --------- Builds toolchain artifacts (e.g. compilers, linkers, SDK pieces) used by the CI graph. upload-symbols -------------- Uploads debug symbols to the symbol server for crash analysis. upload-symbols-dummy -------------------- Ensures macosx64 tasks run for nightlies and releases.