gecko-dev/taskcluster/ci/diffoscope/kind.yml
2019-05-10 21:19:48 +00:00

90 lines
3.9 KiB
YAML

# 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/.
---
loader: taskgraph.loader.transform:loader
kind-dependencies:
- build
- toolchain
transforms:
- taskgraph.transforms.diffoscope:transforms
- taskgraph.transforms.use_toolchains:transforms
- taskgraph.transforms.job:transforms
- taskgraph.transforms.task:transforms
# Note: --exclude-command .--line-numbers is because of
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879003
# That skips `objdump --disassemble --line-numbers` and falls back to
# `objdump --disassemble`
# Note: the .chk excludes are for files that are known to differ between
# builds because they are signed with an ephemeral private key that is
# generated for each build.
job-defaults:
args: >-
--output-empty
--no-default-limits
--max-page-size 100000000
--max-page-diff-block-lines 10000
--exclude-directory-metadata
--exclude-command .--line-numbers
--exclude **/*freeblpriv3.chk
--exclude **/*nssdbm3.chk
--exclude **/*softokn3.chk
jobs:
artifact-win64-aarch64-eme-validation:
symbol: DWE
new: build-win64-aarch64-eme/opt
original: build-win64-aarch64/opt
unpack: true
fail-on-diff: true
pre-diff-commands:
# The EME version has extra files under i686/.
- rm -rf b/firefox/i686
# The i686/ files appear in precomplete, so after removing those references,
# we expect the same content as the non-EME build.
- sed -i '/i686\//d' b/firefox/precomplete
# Remove noise from differences in line numbers in preprocessor output
# due to #if/#else branches.
- sed -i '/^\/\/@line /d' {a,b}/firefox/browser/defaults/preferences/firefox.js
# Removing media.gmp-widevinecdm.* preferences, and setting
# browser.eme.ui.enabled to false should give us the same preferences as
# the non-EME build.
- sed -i '/browser\.eme\.ui\.enabled/s/true/false/;/media\.gmp-widevinecdm\./d' b/firefox/browser/defaults/preferences/firefox.js
# 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-directory-metadata=recursive
--exclude b/firefox/chrome/toolkit/content/global/buildconfig.html
--exclude b/firefox/uninstall/helper.exe
# Make a task for each diff we might want. The following are just examples,
# Both original and new can point to builds from the full set of tasks or
# from other sets through an index-search. Other kinds than `build` can be
# compared (for example, static-analysis), provided you adjust the
# kind-dependencies above.
# android-build-vs-previous-try:
# symbol: A
# new: build-android-api-16/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.mobile.android-api-16-opt}
# linux64-build-vs-previous-try:
# symbol: L
# new: build-linux64/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.linux64-opt}
# extra-args: >-
# --exclude-command .--hex-dump=.gnu_debuglink
# macosx-build-vs-previous-try:
# symbol: M
# new: build-macosx64/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.macosx64-opt}
# win32-build-vs-previous-try:
# symbol: W
# new: build-win32/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.win32-opt}