adoptium / adoptium/installer

Add installation tests for Linux packages

Open
#206 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Jinja
Stars
168
Forks
77
Avg merge
2d 14h
Merged PRs (30d)
12

Description

The umbrella issue is #205.

We need to tests whether Linux packages can be installed at all.

Things we have to check:

* **Does the package install at all?** This needs to be tested on all supported distributions, on all platforms and newest and oldest supported versions. For example, there are subtle differences between Debian and Ubuntu that made packages installable on Ubuntu but not on Debian (see #105 for an example).
* **Does the package pull in the right dependencies?** This needs to be tested at least on all distributions and platforms. RPM for example requires a ISA indicator. Without it, yum might pull 32 bit dependencies on a 64 bit platform.
* **Is it possible to install the package after the matching Java implementation shipped with the distribution?** Inconsistencies in update-alternatives might cause installation failures. This needs to be tested on all distributions, oldest and newest supported.
* **Is it possible to switch between the Java implementation shipped with the distribution and the AdoptOpenJDK package using the distribution's tools?** `update-alternatives` on RPM-based distributions and `update-java-alternatives` on deb-based distributions. This needs to be tested on all distributions, newest and oldest supported versions.

Additional requirements:

* The test should be performed as part of the build before packages are uploaded and should fail the build if it does not succeed.
* The artifact (deb, rpm) produced during the build should be directly installed. Downloading additional packages from our repository is okay, however.
* Ideally, the testing should be able to handle multiple packages simultaneously because of #106.

Contributor guide

Open the contributing guide

Research direction

Start with umbrella issue #205 and inspect the existing build and package-production flow. Map the supported distributions, platforms, and Java implementations, then determine how the generated deb and rpm artifacts can be installed and switched during the build. Done means build failures cover installation, dependencies, and Java implementation switching across the required matrix.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, linux
Domain
build-system, devops, operating-systems, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.