--- 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