-
Notifications
You must be signed in to change notification settings - Fork 2k
Decouple security releases from MUSL builds #2353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
|
How is the catch-up release triggered? |
This works largely by implicitly trusting that I split the new version checking for non-alpine and alpine instead of hardcoding the first option for each major release. // Checks current version
// This checks for non-alpine
const standardVersion = baseVersions.find(v => !v.startsWith("alpine"));
const { stdout: standardVersionOutput } = await exec(`. ./functions.sh && get_full_version ./${supportedVersion}/${standardVersion}`, { shell: "bash" });
// This checks for alpine
const alpineVersion = baseVersions.find(v => v.startsWith("alpine"));
const { stdout: alpineVersionOutput } = await exec(`. ./functions.sh && get_full_version ./${supportedVersion}/${alpineVersion}`, { shell: "bash" });
const fullVersion = { main : standardVersionOutput.trim(), alpine: alpineVersionOutput.trim() };
console.log(`${supportedVersion}: main=${fullVersion.main}, alpine=${fullVersion.alpine}`);
latestSupportedVersions[supportedVersion] = {
fullVersion: fullVersion.main,
alpineVersion: fullVersion.alpine,
// Assumption: standardVersion is always equal or ahead of alpineVersion
// So if the version differs, it must be always an alpine catch-up release
alpineIsBehind: fullVersion.main !== fullVersion.alpine
};As i said before, this works on assumption that This persistent flag will be used later on below to determine whether this version is alpine-only (catch-up) or a standard release. // Catch-up const checks for the whether current alpine is behind
const isCatchup = supported.alpineIsBehind && newAlpine && availableFullVersion === supported.fullVersion;
// Assumption: mainline/standard is always equal or ahead of alpine
// So if new standard release is available, then alpineOnly is always false (new release/non-catchup)
if (newMainline || isCatchup) {
filteredNewerVersions[availableMajor] = {
fullVersion: availableFullVersion,
alpineOnly: !newMainline
};
}Later on, this |
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
This comment was marked as resolved.
This comment was marked as resolved.
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
Signed-off-by: Harta Angkasa <24356946+ItsHarta@users.noreply.github.com>
|
Additional fixes:
|
Description
Currently, all docker images for nodejs depends on the experimental MUSL builds. This PR is a refined attempt to decouple (at least) security releases from the unofficial MUSL build dependency. This PR attempts to refine the automated pipeline by checking several things:
Assumptions:
Motivation and Context
The automated release currently checks for MUSL builds and blocks the version update for all variants if the MUSL build is missing. Since MUSL variant is experimental, this causes delays and issues (esp. for security releases).
Further context and attributions:
Original idea at #2330 (comment) by @MikeMcC399
Initial attempt at #2348 by @bmuenzenmeyer
Testing Details
Example Output(if appropriate)
Types of changes
Checklist