Source code

Revision control

Copy as Markdown

Other Tools

---
loader: taskgraph.loader.transform:loader
kind-dependencies:
- fetch
transforms:
- gecko_taskgraph.transforms.linux_install_test:transforms
- taskgraph.transforms.matrix:transforms
- gecko_taskgraph.transforms.linux_install_test_symbol:transforms
- taskgraph.transforms.task_context:transforms
- gecko_taskgraph.transforms.job:transforms
- gecko_taskgraph.transforms.task:transforms
task-defaults:
description: "Test install-firefox.sh: {name}"
task-context:
substitution-fields:
- description
run:
using: run-task
run-as-root: true
cwd: '{checkout}'
worker:
max-run-time: 1200
treeherder:
tier: 2
kind: test
run-on-projects: [all]
optimization:
skip-unless-changed:
- browser/installer/linux/mach_commands.py
- browser/installer/linux/script/install-firefox.sh
- taskcluster/gecko_taskgraph/transforms/linux_install_test.py
- taskcluster/gecko_taskgraph/transforms/linux_install_test_symbol.py
- taskcluster/kinds/linux-install-test/kind.yml
architectures:
x64:
worker-type: b-linux
platform: linux64/opt
a64:
worker-type: b-linux-aarch64
platform: linux64-aarch64/opt
channels: [release, beta, devedition, nightly]
locales: [en-US, fr, ja]
distros:
debian-12:
symbol: deb12
pre-install: &apt-pre-install apt-get update -qq && apt-get install -y -qq curl wget gnupg
docker-image:
x64: {in-tree: debian12-base}
a64: {in-tree: debian12-arm64-base}
methods: [apt, tarball]
ubuntu-2004:
symbol: ub20
pre-install: apt-get update -qq && apt-get install -y -qq curl wget gnupg
docker-image:
x64: {in-tree: ubuntu2004-base}
methods: [apt, tarball]
architectures: [x64]
ubuntu-2204:
symbol: ub22
pre-install: apt-get update -qq && apt-get install -y -qq curl wget gnupg
docker-image:
x64: {in-tree: ubuntu2204-base}
a64: {in-tree: ubuntu2204-arm64-base}
methods: [apt]
debian-13:
symbol: deb13
pre-install: *apt-pre-install
docker-image:
x64: {in-tree: debian13-base}
a64: {in-tree: debian13-arm64-base}
methods: [apt, tarball]
fedora-41:
symbol: f41
pre-install: dnf install -y curl wget tar xz
docker-image:
x64: {in-tree: fedora41-base}
a64: {in-tree: fedora41-arm64-base} # both arches tested intentionally
methods: [rpm, tarball]
opensuse-leap:
symbol: leap
pre-install: zypper refresh && zypper install -y curl wget tar xz
docker-image:
x64: {in-tree: opensuse-leap-base}
a64: {in-tree: opensuse-leap-arm64-base} # both arches tested intentionally
methods: [rpm, tarball]
debian-12-flatpak:
symbol: deb12-fpk
pre-install: *apt-pre-install
docker-image:
x64: {in-tree: debian12-flatpak}
a64: {in-tree: debian12-arm64-flatpak}
methods: [flatpak]
channels: [release, beta]
locales: [en-US] # flatpak ignores locale; en-US avoids redundant tasks
max-run-time: 1800
# TODO: add snap distro once a suitable CI worker image with snapd is available
tasks:
debian-12-x64-apt-release-env:
description: "Test install-firefox.sh: apt release on debian-12 (auto-detect locale from env)"
worker-type: b-linux
worker:
docker-image: {in-tree: debian12-base}
install-method: apt
channels: [release]
locales: [en-US]
run:
command: >-
apt-get update -qq && apt-get install -y -qq curl wget &&
LANG=fr_FR.UTF-8 sh browser/installer/linux/script/install-firefox.sh
--channel {matrix[channel]} --install-method apt
treeherder:
platform: linux64/opt
symbol: inst-apt(deb12-x64-rel-env)
debian-12-x64-apt-release-wget:
description: "Test install-firefox.sh: apt release on debian-12 (wget only, no curl)"
worker-type: b-linux
worker:
docker-image: {in-tree: debian12-base}
pre-install: >-
apt-get update -qq && apt-get install -y -qq curl wget &&
apt-get remove -y curl
install-method: apt
channels: [release]
locales: [en-US]
treeherder:
platform: linux64/opt
symbol: inst-apt(deb12-x64-rel-wget)
ubuntu-2004-x64-apt-release-upgrade:
description: "Test install-firefox.sh: apt release over pre-installed distro firefox"
worker-type: b-linux
worker:
docker-image: {in-tree: ubuntu2004-base}
pre-install: apt-get update -qq && apt-get install -y -qq curl wget gnupg firefox
install-method: apt
channels: [release]
locales: [en-US]
treeherder:
platform: linux64/opt
symbol: inst-apt(ub20-x64-rel-upg)
fedora-41-x64-rpm-release-upgrade:
description: "Test install-firefox.sh: rpm release over pre-installed distro firefox"
worker-type: b-linux
worker:
docker-image: {in-tree: fedora41-base}
pre-install: dnf install -y curl wget firefox
install-method: rpm
channels: [release]
locales: [en-US]
treeherder:
platform: linux64/opt
symbol: inst-rpm(f41-x64-rel-upg)
opensuse-leap-x64-rpm-release-upgrade:
description: "Test install-firefox.sh: rpm release over pre-installed distro MozillaFirefox"
worker-type: b-linux
worker:
docker-image: {in-tree: opensuse-leap-base}
pre-install: zypper refresh && zypper install -y curl wget MozillaFirefox
install-method: rpm
channels: [release]
locales: [en-US]
treeherder:
platform: linux64/opt
symbol: inst-rpm(leap-x64-rel-upg)
fedora-41-a64-rpm-release-upgrade:
description: "Test install-firefox.sh: rpm release over pre-installed distro firefox (aarch64)"
worker-type: b-linux-aarch64
worker:
docker-image: {in-tree: fedora41-arm64-base}
pre-install: dnf install -y curl wget firefox
install-method: rpm
channels: [release]
locales: [en-US]
treeherder:
platform: linux64-aarch64/opt
symbol: inst-rpm(f41-a64-rel-upg)
opensuse-leap-a64-rpm-release-upgrade:
description: "Test install-firefox.sh: rpm release over pre-installed distro MozillaFirefox (aarch64)"
worker-type: b-linux-aarch64
worker:
docker-image: {in-tree: opensuse-leap-arm64-base}
pre-install: zypper refresh && zypper install -y curl wget MozillaFirefox
install-method: rpm
channels: [release]
locales: [en-US]
treeherder:
platform: linux64-aarch64/opt
symbol: inst-rpm(leap-a64-rel-upg)
debian-12-x64-tarball-release-reinstall:
description: "Test install-firefox.sh: tarball release reinstall over existing /opt/firefox"
worker-type: b-linux
worker:
docker-image: {in-tree: debian12-base}
pre-install: >-
apt-get update -qq && apt-get install -y -qq curl wget &&
mkdir -p /opt/firefox && touch /opt/firefox/firefox
install-method: tarball
channels: [release]
locales: [en-US]
treeherder:
platform: linux64/opt
symbol: inst-tarball(deb12-x64-rel-upg)
unit-tests:
description: "Shell unit tests for install-firefox.sh pure functions"
worker-type: b-linux
worker:
docker-image: {in-tree: debian12-base}
run:
run-as-root: false
command: >-
chmod +x /builds/worker/fetches/shunit2 &&
export PATH="/builds/worker/fetches:$PATH" &&
./mach shell-test browser/installer/linux/script/install-firefox-test-unit.sh
fetches:
fetch:
- shunit2
treeherder:
platform: linux64/opt
symbol: inst(unit)
optimization:
skip-unless-changed:
- browser/installer/linux/script/install-firefox.sh
- browser/installer/linux/script/install-firefox-test-unit.sh
- browser/installer/linux/mach_commands.py
- taskcluster/kinds/linux-install-test/kind.yml