[build] Add task skips intended for partial builds (#92679)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Jonathan Budzenski 2021-03-03 13:15:17 -06:00
parent f6732ebfa9
commit b45668bdea
4 changed files with 78 additions and 36 deletions

View file

@ -33,8 +33,11 @@ it('build default and oss dist for current platform, without packages, by defaul
"createDockerCentOS": false,
"createDockerContexts": true,
"createDockerUBI": false,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": false,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": false,
"versionQualifier": "",
@ -57,8 +60,11 @@ it('builds packages if --all-platforms is passed', () => {
"createDockerCentOS": true,
"createDockerContexts": true,
"createDockerUBI": true,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": true,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",
@ -81,8 +87,11 @@ it('limits packages if --rpm passed with --all-platforms', () => {
"createDockerCentOS": false,
"createDockerContexts": true,
"createDockerUBI": false,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": true,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",
@ -105,8 +114,11 @@ it('limits packages if --deb passed with --all-platforms', () => {
"createDockerCentOS": false,
"createDockerContexts": true,
"createDockerUBI": false,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": false,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",
@ -130,8 +142,11 @@ it('limits packages if --docker passed with --all-platforms', () => {
"createDockerCentOS": true,
"createDockerContexts": true,
"createDockerUBI": true,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": false,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",
@ -162,8 +177,11 @@ it('limits packages if --docker passed with --skip-docker-ubi and --all-platform
"createDockerCentOS": true,
"createDockerContexts": true,
"createDockerUBI": false,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": false,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",
@ -187,8 +205,11 @@ it('limits packages if --all-platforms passed with --skip-docker-centos', () =>
"createDockerCentOS": false,
"createDockerContexts": true,
"createDockerUBI": true,
"createGenericFolders": true,
"createPlatformFolders": true,
"createRpmPackage": true,
"downloadFreshNode": true,
"initialize": true,
"isRelease": false,
"targetAllPlatforms": true,
"versionQualifier": "",

View file

@ -18,6 +18,9 @@ export function readCliArgs(argv: string[]) {
'oss',
'no-oss',
'skip-archives',
'skip-initialize',
'skip-generic-folders',
'skip-platform-folders',
'skip-os-packages',
'rpm',
'deb',
@ -93,7 +96,10 @@ export function readCliArgs(argv: string[]) {
versionQualifier: flags['version-qualifier'],
buildOssDist: flags.oss !== false,
buildDefaultDist: !flags.oss,
initialize: !Boolean(flags['skip-initialize']),
downloadFreshNode: !Boolean(flags['skip-node-download']),
createGenericFolders: !Boolean(flags['skip-generic-folders']),
createPlatformFolders: !Boolean(flags['skip-platform-folders']),
createArchives: !Boolean(flags['skip-archives']),
createRpmPackage: isOsPackageDesired('rpm'),
createDebPackage: isOsPackageDesired('deb'),

View file

@ -16,6 +16,9 @@ export interface BuildOptions {
buildOssDist: boolean;
buildDefaultDist: boolean;
downloadFreshNode: boolean;
initialize: boolean;
createGenericFolders: boolean;
createPlatformFolders: boolean;
createArchives: boolean;
createRpmPackage: boolean;
createDebPackage: boolean;
@ -41,45 +44,53 @@ export async function buildDistributables(log: ToolingLog, options: BuildOptions
/**
* verify, reset, and initialize the build environment
*/
await run(Tasks.VerifyEnv);
await run(Tasks.Clean);
await run(options.downloadFreshNode ? Tasks.DownloadNodeBuilds : Tasks.VerifyExistingNodeBuilds);
await run(Tasks.ExtractNodeBuilds);
if (options.initialize) {
await run(Tasks.VerifyEnv);
await run(Tasks.Clean);
await run(
options.downloadFreshNode ? Tasks.DownloadNodeBuilds : Tasks.VerifyExistingNodeBuilds
);
await run(Tasks.ExtractNodeBuilds);
}
/**
* run platform-generic build tasks
*/
await run(Tasks.CopySource);
await run(Tasks.CopyBinScripts);
await run(Tasks.ReplaceFavicon);
await run(Tasks.CreateEmptyDirsAndFiles);
await run(Tasks.CreateReadme);
await run(Tasks.BuildBazelPackages);
await run(Tasks.BuildPackages);
await run(Tasks.BuildKibanaPlatformPlugins);
await run(Tasks.TranspileBabel);
await run(Tasks.CreatePackageJson);
await run(Tasks.InstallDependencies);
await run(Tasks.CleanPackages);
await run(Tasks.CreateNoticeFile);
await run(Tasks.UpdateLicenseFile);
await run(Tasks.RemovePackageJsonDeps);
await run(Tasks.CleanTypescript);
await run(Tasks.CleanExtraFilesFromModules);
await run(Tasks.CleanEmptyFolders);
if (options.createGenericFolders) {
await run(Tasks.CopySource);
await run(Tasks.CopyBinScripts);
await run(Tasks.ReplaceFavicon);
await run(Tasks.CreateEmptyDirsAndFiles);
await run(Tasks.CreateReadme);
await run(Tasks.BuildBazelPackages);
await run(Tasks.BuildPackages);
await run(Tasks.BuildKibanaPlatformPlugins);
await run(Tasks.TranspileBabel);
await run(Tasks.CreatePackageJson);
await run(Tasks.InstallDependencies);
await run(Tasks.CleanPackages);
await run(Tasks.CreateNoticeFile);
await run(Tasks.UpdateLicenseFile);
await run(Tasks.RemovePackageJsonDeps);
await run(Tasks.CleanTypescript);
await run(Tasks.CleanExtraFilesFromModules);
await run(Tasks.CleanEmptyFolders);
}
/**
* copy generic build outputs into platform-specific build
* directories and perform platform/architecture-specific steps
*/
await run(Tasks.CreateArchivesSources);
await run(Tasks.PatchNativeModules);
await run(Tasks.InstallChromium);
await run(Tasks.CleanExtraBinScripts);
await run(Tasks.CleanNodeBuilds);
if (options.createPlatformFolders) {
await run(Tasks.CreateArchivesSources);
await run(Tasks.PatchNativeModules);
await run(Tasks.InstallChromium);
await run(Tasks.CleanExtraBinScripts);
await run(Tasks.CleanNodeBuilds);
await run(Tasks.PathLength);
await run(Tasks.UuidVerification);
await run(Tasks.PathLength);
await run(Tasks.UuidVerification);
}
/**
* package platform-specific builds into archives

View file

@ -83,6 +83,16 @@ export async function runDockerGenerator(
revision: config.getBuildSha(),
};
type HostArchitectureToDocker = Record<string, string>;
const hostTarget: HostArchitectureToDocker = {
x64: 'x64',
arm64: 'aarch64',
};
const buildArchitectureSupported = hostTarget[process.arch] === flags.architecture;
if (flags.architecture && !buildArchitectureSupported) {
return;
}
// Verify if we have the needed kibana target in order
// to build the kibana docker image.
// Also create the docker build target folder
@ -132,13 +142,7 @@ export async function runDockerGenerator(
await chmodAsync(`${resolve(dockerBuildDir, 'build_docker.sh')}`, '755');
// Only build images on native targets
type HostArchitectureToDocker = Record<string, string>;
const hostTarget: HostArchitectureToDocker = {
x64: 'x64',
arm64: 'aarch64',
};
const buildImage = hostTarget[process.arch] === flags.architecture && flags.image;
if (buildImage) {
if (flags.image) {
await exec(log, `./build_docker.sh`, [], {
cwd: dockerBuildDir,
level: 'info',