# 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/.
---
task-defaults:
    # Artifact builds always build with nightly branding, so these checks don't
    # work on non-trunk branches.
    run-on-projects: ['trunk']
    unpack: true
    fail-on-diff: true
    pre-diff-commands:
        # jogfile.json is only created in artifact builds.
        - rm b/"$RESOURCE_DIR"/jogfile.json
        # Remove noise from differences in line numbers in preprocessor output
        # due to #if/#else branches.
        - sed -i '/^\/\/@line /d' {a,b}/"$RESOURCE_DIR"/browser/defaults/preferences/firefox.js
        # bug 1825141 - telemetry.fog.artifact_build isn't stable between
        # artifact and not-artifact builds, so remove its line if present.
        - sed -i '/telemetry\.fog\.artifact\_build/d' b/"$RESOURCE_DIR"/browser/defaults/preferences/firefox.js
        # non-macOS artifact builds are not fed with accepted-mar-channel-ids.
        - if [ -f a/"$RESOURCE_DIR"/update-settings.ini ]; then sed -i '/ACCEPTED_MAR_CHANNEL_IDS/d' {a,b}/"$RESOURCE_DIR"/update-settings.ini; fi
        # macOS artifact builds have local update configurations, not Nightly
        # update configurations.
        - rm -f {a,b}/"$RESOURCE_DIR"/../Frameworks/ChannelPrefs.framework/ChannelPrefs
        - rm -f {a,b}/"$RESOURCE_DIR"/../MacOS/updater.app/Contents/Frameworks/UpdateSettings.framework/UpdateSettings
    # Extra diffoscope arguments to account for:
    # - about:buildconfig being expectedly different.
    extra-args: >-
        --exclude b/"$RESOURCE_DIR"/chrome/toolkit/content/global/buildconfig.html
    # This is necessary to avoid building the dependencies on every push on autoland
    # A more robust fix for this is https://bugzilla.mozilla.org/show_bug.cgi?id=1643346
    optimization:
        skip-unless-expanded: null

artifact-linux64-validation:
    symbol: Linux64a
    new: artifact-build-linux64-artifact/opt
    original: build-linux64/opt

artifact-macosx64-validation:
    symbol: Macosx64a
    new: artifact-build-macosx64-artifact/opt
    original: build-macosx64/opt

artifact-win64-validation:
    symbol: Win64a
    new: artifact-build-win64-artifact/opt
    original: build-win64/opt
    # Extra diffoscope arguments to account for:
    # - about:buildconfig being expectedly different.
    # - There are some differences in PE metadata in helper.exe because
    #   it's (re)built in the EME build, and that part of the build is
    #   not reproducible.
    extra-args: >-
        --exclude b/"$RESOURCE_DIR"/chrome/toolkit/content/global/buildconfig.html
        --exclude b/firefox/uninstall/helper.exe
