concourse/pipelines/guest-package-build.jsonnet (1,513 lines of code) (raw):

local underscore(input) = std.strReplace(input, '-', '_'); // task which publishes a 'result' metric per job, with either success or failure value. local publishresulttask = { local tl = self, result:: error 'must set result in publishresulttask', package:: error 'must set package in publishresulttask', // start of output. task: tl.result, config: { platform: 'linux', image_resource: { type: 'registry-image-private', source: { repository: 'gcr.io/gcp-guest/concourse-metrics', google_auth: true, }, }, run: { path: '/publish-job-result', args: [ '--project-id=gcp-guest', '--zone=us-west1-a', '--pipeline=guest-package-build', '--job=build-' + tl.package, '--task=publish-job-result', '--result-state=' + tl.result, '--start-timestamp=((.:start-timestamp-ms))', '--metric-path=concourse/job/duration', ], }, }, }; // task which generates timestamps used in metric publishing steps. common between build and promote jobs. local generatetimestamptask = { task: 'generate-timestamp', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'bash' }, }, outputs: [{ name: 'timestamp' }], run: { path: '/usr/local/bin/bash', args: [ '-c', 'timestamp=$((${EPOCHREALTIME/./}/1000)); echo $(($timestamp/1000)) | tee timestamp/timestamp; echo $timestamp | tee timestamp/timestamp-ms', ], }, }, }; // job which builds a package - environments to build and individual upload tasks are passed in local base_buildpackagejob = { local tl = self, package:: error 'must set package in buildpackagejob', repo_name:: tl.package, gcs_dir:: tl.package, builds:: error 'must set builds in buildpackagejob', uploads:: error 'must set uploads in buildpackagejob', extra_tasks:: [], extended_tasks:: [], build_dir:: '', extra_repo:: '', default_trigger_steps:: [ { get: tl.package, trigger: true, params: { skip_download: true }, }, { get: 'guest-test-infra' }, ], trigger_steps:: if tl.extra_repo != '' then tl.default_trigger_steps + [ { get: tl.extra_repo, trigger: true, params: { skip_download: true }, }, ] else tl.default_trigger_steps, default_load_sha:: [ { load_var: 'commit-sha', file: '%s/.git/ref' % tl.package }, ], load_sha_steps:: if tl.extra_repo != '' then tl.default_load_sha + [ { load_var: 'extra-commit-sha', file: '%s/.git/ref' % tl.extra_repo, }, ] else tl.default_load_sha, extra_daisy_args:: if tl.extra_repo != '' then [ '-var:extra_repo=' + tl.extra_repo, '-var:extra_git_ref=((.:extra-commit-sha))', ] else [], // Start of output. name: 'build-' + tl.package, parallel_triggers:: [ // Prep build variables and content. { in_parallel: { steps: tl.trigger_steps, }, }, ], plan: tl.parallel_triggers + tl.load_sha_steps + [ generatetimestamptask, { load_var: 'start-timestamp-ms', file: 'timestamp/timestamp-ms' }, // Prep package version by reading tags in the git repo. New versions are YYYYMMDD.NN, where .NN // increments within a given day. { task: 'generate-package-version', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'alpine/git' }, }, inputs: [{ name: tl.package, path: 'repo' }], outputs: [{ name: 'package-version' }], run: { path: 'ash', args: [ '-exc', // Ugly way to produce multi-line script. TODO: maybe move to scripts? std.lines([ 'latest=$(cd repo;git tag -l "20*"|tail -1)', 'latest_date=${latest/.*}', 'todays_date=$(date "+%Y%m%d")', 'latest_build=0', 'if [[ $latest_date == $todays_date ]]; then', ' latest_build=${latest/*.}', ' latest_build=$((latest_build+1))', 'fi', 'printf "%s.%02d\n" "${todays_date}" "${latest_build}" | tee package-version/version', ]), ], }, }, }, { load_var: 'package-version', file: 'package-version/version' }, // Invoke daisy build workflows for all specified builds. { in_parallel: { steps: [ { task: 'guest-package-build-%s-%s' % [tl.package, build], config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/daisy' }, }, inputs: [{ name: 'guest-test-infra' }], run: { path: '/daisy', args: [ '-project=gcp-guest', '-zone=us-west1-a', '-var:repo_owner=GoogleCloudPlatform', '-var:repo_name=' + tl.repo_name, '-var:git_ref=((.:commit-sha))', '-var:version=((.:package-version))', '-var:gcs_path=gs://gcp-guest-package-uploads/' + tl.gcs_dir, '-var:sbom_util_gcs_root=gs://gce-image-sbom-util', '-var:build_dir=' + tl.build_dir, ] + tl.extra_daisy_args + [ 'guest-test-infra/packagebuild/workflows/build_%s.wf.json' % underscore(build), ], }, }, } for build in tl.builds ], }, }, // Layer in any provided additional tasks after build but before upload. ] + tl.extra_tasks + tl.extended_tasks, }; local buildpackagejob = base_buildpackagejob { local tl = self, extended_tasks: [ // Run provided upload tasks. { in_parallel: { fail_fast: true, steps: tl.uploads, }, }, // Put the version tag onto the repo after uploads are complete. { put: '%s-tag' % tl.package, params: { name: 'package-version/version', tag: 'package-version/version', commitish: '%s/.git/ref' % tl.package, }, }, ], // Publish success/failure metrics. on_success: publishresulttask { result: 'success', package: tl.package, }, on_failure: publishresulttask { result: 'failure', package: tl.package, }, }; // task which uploads a package version using the 'uploadToArtifactReleaser' pubsub request type local uploadpackageversiontask = { local tl = self, // Unlike other parameters, gcs_files must be enclosed in double quotes when passed in for json parsing. // For example, gcs_files: '"path1","path2"', or gcs_files: '"path"' if there is only one file. gcs_files:: error 'must set gcs_files in uploadpackageversiontask', os_type:: error 'must set os_type in uploadpackageversiontask', pkg_inside_name:: error 'must set pkg_inside_name in uploadpackageversiontask', pkg_name:: error 'must set pkgname in uploadpackageversiontask', pkg_version:: error 'must set pkgversion in uploadpackageversiontask', request_type:: 'uploadToArtifactReleaser', reponame:: error 'must set reponame in uploadpackageversiontask', sbom_file:: error 'must set sbom_file in uploadpackageversiontask', topic:: 'projects/artifact-releaser-prod/topics/artifact-registry-package-upload-prod', task: 'upload-' + tl.pkg_name + '-' + tl.os_type, config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'google/cloud-sdk', tag: 'alpine' }, }, run: { path: 'gcloud', args: [ 'pubsub', 'topics', 'publish', tl.topic, '--message', '{"type": "%s", "request": {"ostype": "%s", "pkginsidename": "%s", "pkgname": "%s", "pkgversion": "%s", "reponame": "%s", "sbomfile": "%s", "gcsfiles": [%s]}}' % [tl.request_type, tl.os_type, tl.pkg_inside_name, tl.pkg_name, tl.pkg_version, tl.reponame, tl.sbom_file, tl.gcs_files], ], }, }, }; // task which builds a derivative OS image with a specific package added, for use in tests local buildpackageimagetask = { local tl = self, image_name:: error 'must set image_name in buildpackageimagetask', source_image:: error 'must set source_image in buildpackageimagetask', dest_image:: error 'must set dest_image in buildpackageimagetask', gcs_package_path:: error 'must set gcs_package_path in buildpackageimagetask', machine_type:: 'e2-medium', worker_image:: 'projects/compute-image-tools/global/images/family/debian-11-worker', disk_type:: 'pd-ssd', // Start of output. task: 'build-derivative-%s-image' % tl.image_name, config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/daisy' }, }, inputs: [{ name: 'compute-image-tools' }], run: { path: '/daisy', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-var:source_image=' + tl.source_image, '-var:gcs_package_path=' + tl.gcs_package_path, '-var:dest_image=' + tl.dest_image, '-var:machine_type=' + tl.machine_type, '-var:worker_image=' + tl.worker_image, '-var:disk_type=' + tl.disk_type, './compute-image-tools/daisy_workflows/image_build/install_package/install_package.wf.json', ], }, }, }; local buildpackageimagetaskcos = { local tl = self, image_name:: error 'must set image_name in buildpackageimagetaskcos', source_image:: error 'must set source_image in buildpackageimagetaskcos', dest_image:: error 'must set dest_image in buildpackageimagetaskcos', commit_sha:: error 'must set dest_image in buildpackageimagetaskcos', machine_type:: error 'must set machine_type in buildpackageimagetaskcos', worker_image:: error 'must set worker_image in buildpackageimagetaskcos', // Start of output. task: 'build-derivative-%s-image' % tl.image_name, config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/daisy' }, }, inputs: [{ name: 'compute-image-tools' }], run: { path: '/daisy', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-var:source_image=' + tl.source_image, '-var:dest_image=' + tl.dest_image, '-var:commit_sha=' + tl.commit_sha, '-var:machine_type=' + tl.machine_type, '-var:worker_image=' + tl.worker_image, './compute-image-tools/daisy_workflows/image_build/install_package/cos/install_package_cos.wf.json', ], }, }, }; local build_guest_configs = buildpackagejob { local tl = self, package:: error 'must set package for build_guest_configs', builds: ['deb12', 'deb11', 'el8', 'el9'], gcs_dir: 'google-compute-engine', uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb"', os_type: 'BUSTER_APT', pkg_inside_name: 'google-compute-engine', pkg_name: 'guest-configs', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-buster', sbom_file: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb"', os_type: 'BULLSEYE_APT', pkg_inside_name: 'google-compute-engine', pkg_name: 'guest-configs', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-bullseye', sbom_file: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb"', os_type: 'BOOKWORM_APT', pkg_inside_name: 'google-compute-engine', pkg_name: 'guest-configs', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-bookworm', sbom_file: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el8.noarch.rpm"', os_type: 'EL8_YUM', pkg_inside_name: 'google-compute-engine', pkg_name: 'guest-configs', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-el8', sbom_file: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm"', os_type: 'EL9_YUM', pkg_inside_name: 'google-compute-engine', pkg_name: 'guest-configs', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-el9', sbom_file: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version)).sbom.json', }, ], extra_tasks: [ { task: 'generate-build-id', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'busybox' }, }, outputs: [{ name: 'build-id-dir' }], run: { path: 'sh', args: [ '-exc', 'buildid=$(date "+%s"); echo ' + tl.package + '-$buildid | tee build-id-dir/build-id', ], }, }, }, { load_var: 'build-id', file: 'build-id-dir/build-id' }, { get: 'compute-image-tools' }, { in_parallel: { steps: [ buildpackageimagetask { image_name: 'debian-11', source_image: 'projects/debian-cloud/global/images/family/debian-11', dest_image: 'debian-11-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb', }, buildpackageimagetask { image_name: 'debian-12', source_image: 'projects/bct-prod-images/global/images/family/debian-12', dest_image: 'debian-12-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb', }, buildpackageimagetask { image_name: 'debian-12-arm64', source_image: 'projects/bct-prod-images/global/images/family/debian-12-arm64', dest_image: 'debian-12-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine_((.:package-version))-g1_all.deb', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rhel-8', source_image: 'projects/rhel-cloud/global/images/family/rhel-8', dest_image: 'rhel-8-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el8.noarch.rpm', }, buildpackageimagetask { image_name: 'rocky-linux-8-optimized-gcp-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp-arm64', dest_image: 'rocky-linux-8-optimized-gcp-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el8.noarch.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rocky-linux-8', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8', dest_image: 'rocky-linux-8-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el8.noarch.rpm', }, buildpackageimagetask { image_name: 'rhel-9', source_image: 'projects/rhel-cloud/global/images/family/rhel-9', dest_image: 'rhel-9-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', }, buildpackageimagetask { image_name: 'rhel-9-arm64', source_image: 'projects/rhel-cloud/global/images/family/rhel-9-arm64', dest_image: 'rhel-9-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rocky-linux-9', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9', dest_image: 'rocky-linux-9-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-9-optimized-gcp', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-optimized-gcp', dest_image: 'rocky-linux-9-optimized-gcp-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-9-optimized-gcp-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-optimized-gcp-arm64', dest_image: 'rocky-linux-9-optimized-gcp-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rocky-linux-9-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-arm64', dest_image: 'rocky-linux-9-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/google-compute-engine/google-compute-engine-((.:package-version))-g1.el9.noarch.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, ], }, }, { in_parallel: { fail_fast: true, steps: [ { task: '%s-image-tests-amd64' % [tl.package], config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-test_projects=compute-image-test-pool-002,compute-image-test-pool-003,compute-image-test-pool-004,compute-image-test-pool-005', '-images=projects/gcp-guest/global/images/debian-11-((.:build-id)),projects/gcp-guest/global/images/debian-12-((.:build-id)),projects/gcp-guest/global/images/rhel-8-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-((.:build-id)),projects/gcp-guest/global/images/rhel-9-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-optimized-gcp-((.:build-id))', '-filter=^(packagemanager|networkinterfacenaming|cvm|loadbalancer|guestagent|hostnamevalidation|network|packagevalidation|ssh|metadata|mdsroutes|vmspec)$', '-parallel_count=15', ], }, }, }, { task: '%s-image-tests-arm64' % [tl.package], config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, inputs: [{ name: 'guest-test-infra' }], run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-images=projects/gcp-guest/global/images/debian-12-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-optimized-gcp-arm64-((.:build-id)),projects/gcp-guest/global/images/rhel-9-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-optimized-gcp-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-arm64-((.:build-id))', '-filter=^(cvm|loadbalancer|guestagent|hostnamevalidation|network|packagevalidation|ssh|metadata|mdsroutes|vmspec)$', '-test_projects=compute-image-test-pool-002,compute-image-test-pool-003,compute-image-test-pool-004,compute-image-test-pool-005', '-parallel_count=15', ], }, }, }, ], }, }, ], }; local build_guest_agent = buildpackagejob { local tl = self, package:: error 'must set package in build_guest_agent', uploads: [], builds: ['deb12', 'deb12-arm64', 'el8', 'el8-arm64', 'el9', 'el9-arm64', 'goo'], // The guest agent has additional testing steps to build derivative images then run CIT against them. extra_tasks: [ { task: 'generate-build-id', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'busybox' }, }, outputs: [{ name: 'build-id-dir' }], run: { path: 'sh', args: [ '-exc', 'buildid=$(date "+%s"); echo ' + tl.package + '-$buildid | tee build-id-dir/build-id', ], }, }, }, { load_var: 'build-id', file: 'build-id-dir/build-id' }, { get: 'compute-image-tools' }, { in_parallel: { steps: [ buildpackageimagetask { image_name: 'debian-11', source_image: 'projects/debian-cloud/global/images/family/debian-11', dest_image: 'debian-11-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb' % [tl.package], }, buildpackageimagetask { image_name: 'debian-12', source_image: 'projects/bct-prod-images/global/images/family/debian-12', dest_image: 'debian-12-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb' % [tl.package], }, buildpackageimagetask { image_name: 'debian-12-arm64', source_image: 'projects/bct-prod-images/global/images/family/debian-12-arm64', dest_image: 'debian-12-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_arm64.deb' % [tl.package], machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rhel-8', source_image: 'projects/rhel-cloud/global/images/family/rhel-8', dest_image: 'rhel-8-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.x86_64.rpm' % [tl.package], }, buildpackageimagetask { image_name: 'rocky-linux-8', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8', dest_image: 'rocky-linux-8-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.x86_64.rpm' % [tl.package], worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-8-optimized-gcp', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp', dest_image: 'rocky-linux-8-optimized-gcp-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.x86_64.rpm' % [tl.package], worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-8-optimized-gcp-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp-arm64', dest_image: 'rocky-linux-8-optimized-gcp-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.aarch64.rpm' % [tl.package], machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rhel-9', source_image: 'projects/rhel-cloud/global/images/family/rhel-9', dest_image: 'rhel-9-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.x86_64.rpm' % [tl.package], }, buildpackageimagetask { image_name: 'rhel-9-arm64', source_image: 'projects/rhel-cloud/global/images/family/rhel-9-arm64', dest_image: 'rhel-9-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.aarch64.rpm' % [tl.package], machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rocky-linux-9', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9', dest_image: 'rocky-linux-9-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.x86_64.rpm' % [tl.package], worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-9-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-arm64', dest_image: 'rocky-linux-9-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.aarch64.rpm' % [tl.package], machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rocky-linux-9-optimized-gcp', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-optimized-gcp', dest_image: 'rocky-linux-9-optimized-gcp-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.x86_64.rpm' % [tl.package], worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetask { image_name: 'rocky-linux-9-optimized-gcp-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-9-optimized-gcp-arm64', dest_image: 'rocky-linux-9-optimized-gcp-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.aarch64.rpm' % [tl.package], machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetaskcos { image_name: 'cos-121', source_image: 'cos-121-lts', dest_image: 'cos-121-((.:build-id))', commit_sha: '((.:commit-sha))', machine_type: 'e2-medium', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetaskcos { image_name: 'cos-117', source_image: 'cos-117-lts', dest_image: 'cos-117-((.:build-id))', commit_sha: '((.:commit-sha))', machine_type: 'e2-medium', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetaskcos { image_name: 'cos-113', source_image: 'cos-113-lts', dest_image: 'cos-113-((.:build-id))', commit_sha: '((.:commit-sha))', machine_type: 'e2-medium', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, buildpackageimagetaskcos { image_name: 'cos-109', source_image: 'cos-109-lts', dest_image: 'cos-109-((.:build-id))', commit_sha: '((.:commit-sha))', machine_type: 'e2-medium', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker', }, ], }, }, { in_parallel: { fail_fast: true, steps: [ { task: '%s-image-tests-amd64' % [tl.package], config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-test_projects=compute-image-test-pool-002,compute-image-test-pool-003,compute-image-test-pool-004,compute-image-test-pool-005', '-images=projects/gcp-guest/global/images/debian-11-((.:build-id)),projects/gcp-guest/global/images/debian-12-((.:build-id)),projects/gcp-guest/global/images/rhel-8-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-((.:build-id)),projects/gcp-guest/global/images/rhel-9-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-optimized-gcp-((.:build-id)),projects/gcp-guest/global/images/cos-121-((.:build-id)),projects/gcp-guest/global/images/cos-117-((.:build-id)),projects/gcp-guest/global/images/cos-113-((.:build-id)),projects/gcp-guest/global/images/cos-109-((.:build-id))', '-filter=^(cvm|loadbalancer|guestagent|hostnamevalidation|network|packagevalidation|ssh|metadata|vmspec|compatmanager|pluginmanager)$', '-parallel_count=15', ], }, }, }, { task: '%s-image-tests-arm64' % [tl.package], config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, inputs: [{ name: 'guest-test-infra' }], run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-test_projects=compute-image-test-pool-002,compute-image-test-pool-003,compute-image-test-pool-004,compute-image-test-pool-005', '-images=projects/gcp-guest/global/images/debian-12-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-optimized-gcp-arm64-((.:build-id)),projects/gcp-guest/global/images/rhel-9-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-optimized-gcp-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-9-arm64-((.:build-id))', '-filter=^(cvm|loadbalancer|guestagent|hostnamevalidation|network|packagevalidation|ssh|metadata|vmspec|compatmanager|pluginmanager)$', '-parallel_count=15', ], }, }, }, ], }, }, ], }; local build_and_upload_guest_agent = build_guest_agent { local tl = self, package:: error 'must set package in build_and_upload_guest_agent', uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb"' % [tl.package], os_type: 'BUSTER_APT', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-buster', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb","gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_arm64.deb"' % [tl.package, tl.package], os_type: 'BULLSEYE_APT', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-bullseye', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb","gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_arm64.deb"' % [tl.package, tl.package], os_type: 'BOOKWORM_APT', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-bookworm', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_amd64.deb","gs://gcp-guest-package-uploads/%s/google-guest-agent_((.:package-version))-g1_arm64.deb"' % [tl.package, tl.package], os_type: 'TRIXIE_APT', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-trixie', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.x86_64.rpm","gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el8.aarch64.rpm"' % [tl.package, tl.package], os_type: 'EL8_YUM', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-el8', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.x86_64.rpm","gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el9.aarch64.rpm"' % [tl.package, tl.package], os_type: 'EL9_YUM', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-el9', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el10.x86_64.rpm","gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version))-g1.el10.aarch64.rpm"' % [tl.package, tl.package], os_type: 'EL10_YUM', pkg_inside_name: 'google-guest-agent', pkg_name: 'guest-agent', pkg_version: '((.:package-version))', reponame: 'google-guest-agent-el10', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-guest-agent-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-compute-engine-windows.x86_64.((.:package-version)).0@1.goo"' % [tl.package], os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-windows', pkg_name: 'google-compute-engine-windows', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-windows', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-compute-engine-windows-((.:package-version)).sbom.json' % [tl.package], }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/%s/google-compute-engine-metadata-scripts.x86_64.((.:package-version)).0@1.goo"' % [tl.package], os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-metadata-scripts', pkg_name: 'google-compute-engine-metadata-scripts', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-metadata-scripts', sbom_file: 'gs://gcp-guest-package-uploads/%s/google-compute-engine-metadata-scripts-((.:package-version)).sbom.json' % [tl.package], }, ], }; local build_and_upload_oslogin = buildpackagejob { local tl = self, package:: error 'must set package in build_and_upload_oslogin', gcs_dir:: error 'must set gcs_dir in build_and_upload_oslogin', builds: ['deb11', 'deb12', 'deb12-arm64', 'deb13', 'el8', 'el8-arm64', 'el9', 'el9-arm64', 'el10', 'el10-arm64'], extra_tasks: [ { task: 'generate-build-id', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'busybox' }, }, outputs: [{ name: 'build-id-dir' }], run: { path: 'sh', args: [ '-exc', 'buildid=$(date "+%s"); echo ' + tl.package + '-$buildid | tee build-id-dir/build-id', ], }, }, }, { load_var: 'build-id', file: 'build-id-dir/build-id' }, { get: 'compute-image-tools' }, { in_parallel: { fail_fast: true, steps: [ buildpackageimagetask { image_name: 'debian-11', source_image: 'projects/debian-cloud/global/images/family/debian-11', dest_image: 'debian-11-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb11_amd64.deb', }, buildpackageimagetask { image_name: 'debian-12', source_image: 'projects/bct-prod-images/global/images/family/debian-12', dest_image: 'debian-12-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_amd64.deb', }, buildpackageimagetask { image_name: 'debian-12-arm64', source_image: 'projects/bct-prod-images/global/images/family/debian-12-arm64', dest_image: 'debian-12-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_arm64.deb', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'debian-13', source_image: 'projects/bct-prod-images/global/images/family/debian-12', dest_image: 'debian-13-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_amd64.deb', }, buildpackageimagetask { image_name: 'rhel-8', source_image: 'projects/rhel-cloud/global/images/family/rhel-8', dest_image: 'rhel-8-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el8.x86_64.rpm', }, buildpackageimagetask { image_name: 'rocky-linux-8-optimized-gcp-arm64', source_image: 'projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp-arm64', dest_image: 'rocky-linux-8-optimized-gcp-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el8.aarch64.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rhel-9', source_image: 'projects/rhel-cloud/global/images/family/rhel-9', dest_image: 'rhel-9-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el9.x86_64.rpm', }, buildpackageimagetask { image_name: 'rhel-9-arm64', source_image: 'projects/rhel-cloud/global/images/family/rhel-9-arm64', dest_image: 'rhel-9-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el9.aarch64.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, buildpackageimagetask { image_name: 'rhel-10', source_image: 'projects/rhel-cloud/global/images/family/rhel-9', dest_image: 'rhel-10-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el10.x86_64.rpm', }, buildpackageimagetask { image_name: 'rhel-10-arm64', source_image: 'projects/rhel-cloud/global/images/family/rhel-10-arm64', dest_image: 'rhel-10-arm64-((.:build-id))', gcs_package_path: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el10.aarch64.rpm', machine_type: 'c4a-standard-2', disk_type: 'hyperdisk-balanced', worker_image: 'projects/compute-image-tools/global/images/family/debian-12-worker-arm64', }, ], }, }, { in_parallel: { fail_fast: true, steps: [ { task: 'oslogin-image-tests-amd64', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-test_projects=oslogin-cit', '-parallel_count=2', '-images=projects/gcp-guest/global/images/debian-11-((.:build-id)),projects/gcp-guest/global/images/debian-12-((.:build-id)),projects/gcp-guest/global/images/debian-13-((.:build-id)),projects/gcp-guest/global/images/rhel-8-((.:build-id)),projects/gcp-guest/global/images/rhel-9-((.:build-id)),projects/gcp-guest/global/images/rhel-10-((.:build-id))', '-filter=oslogin', ], }, }, }, { task: 'oslogin-image-tests-arm64', config: { platform: 'linux', image_resource: { type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/cloud-image-tests' }, }, inputs: [{ name: 'guest-test-infra' }], run: { path: '/manager', args: [ '-project=gcp-guest', '-zone=us-central1-a', '-test_projects=oslogin-cit', '-images=projects/gcp-guest/global/images/debian-12-arm64-((.:build-id)),projects/gcp-guest/global/images/rocky-linux-8-optimized-gcp-arm64-((.:build-id)),projects/gcp-guest/global/images/rhel-9-arm64-((.:build-id)),projects/gcp-guest/global/images/rhel-10-arm64-((.:build-id))', '-parallel_count=2', '-filter=oslogin', ], }, }, }, ], }, }, ], uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb11_amd64.deb","gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb11_arm64.deb"', os_type: 'BULLSEYE_APT', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-bullseye', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_amd64.deb","gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_arm64.deb"', os_type: 'BOOKWORM_APT', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-bookworm', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin_((.:package-version))-g1+deb12_amd64.deb"', os_type: 'TRIXIE_APT', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-trixie', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el8.x86_64.rpm","gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el8.aarch64.rpm"', os_type: 'EL8_YUM', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-el8', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el9.x86_64.rpm","gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el9.aarch64.rpm"', os_type: 'EL9_YUM', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-el9', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el10.x86_64.rpm","gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version))-g1.el10.aarch64.rpm"', os_type: 'EL10_YUM', pkg_inside_name: 'google-compute-engine-oslogin', pkg_name: 'guest-oslogin', pkg_version: '((.:package-version))', reponame: 'gce-google-compute-engine-oslogin-el10', sbom_file: 'gs://gcp-guest-package-uploads/oslogin/google-compute-engine-oslogin-((.:package-version)).sbom.json', }, ], }; // Start of output { jobs: [ build_guest_configs { package: 'guest-configs', }, build_and_upload_guest_agent { package: 'guest-agent', extra_repo: 'google-guest-agent', }, build_and_upload_guest_agent { package: 'guest-agent-stable', gcs_dir: 'guest-agent-stable', extra_repo: 'google-guest-agent', repo_name: 'guest-agent', }, build_guest_agent { package: 'guest-agent-dev', repo_name: 'guest-agent', extra_repo: 'google-guest-agent', extended_tasks: [], }, build_and_upload_oslogin { package: 'guest-oslogin', gcs_dir: 'oslogin', repo_name: 'guest-oslogin', }, build_and_upload_oslogin { package: 'guest-oslogin-stbl', gcs_dir: 'oslogin-stbl', repo_name: 'guest-oslogin', }, buildpackagejob { package: 'guest-diskexpand', builds: ['deb12', 'deb13', 'el8', 'el9', 'el10'], gcs_dir: 'gce-disk-expand', uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand_((.:package-version))-g1_all.deb"', os_type: 'DEBIAN_ALL_APT', pkg_inside_name: 'gce-disk-expand', pkg_name: 'guest-diskexpand', pkg_version: '((.:package-version))', reponame: 'gce-disk-expand', sbom_file: 'gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version))-g1.el8.noarch.rpm"', os_type: 'EL8_YUM', pkg_inside_name: 'gce-disk-expand', pkg_name: 'guest-diskexpand', pkg_version: '((.:package-version))', reponame: 'gce-disk-expand-el8', sbom_file: 'gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version))-g1.el9.noarch.rpm"', os_type: 'EL9_YUM', pkg_inside_name: 'gce-disk-expand', pkg_name: 'guest-diskexpand', pkg_version: '((.:package-version))', reponame: 'gce-disk-expand-el9', sbom_file: 'gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version))-g1.el10.noarch.rpm"', os_type: 'EL10_YUM', pkg_inside_name: 'gce-disk-expand', pkg_name: 'guest-diskexpand', pkg_version: '((.:package-version))', reponame: 'gce-disk-expand-el10', sbom_file: 'gs://gcp-guest-package-uploads/gce-disk-expand/gce-disk-expand-((.:package-version)).sbom.json', }, ], }, buildpackagejob { package: 'artifact-registry-yum-plugin', builds: ['el8', 'el8-arm64', 'el9', 'el9-arm64'], gcs_dir: 'yum-plugin-artifact-registry', uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el8.x86_64.rpm","gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el8.aarch64.rpm"', os_type: 'EL8_YUM', pkg_inside_name: 'dnf-plugin-artifact-registry', pkg_name: 'artifact-registry-dnf-plugin', pkg_version: '((.:package-version))', reponame: 'dnf-plugin-artifact-registry-el8', sbom_file: 'gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el9.x86_64.rpm","gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el9.aarch64.rpm"', os_type: 'EL9_YUM', pkg_inside_name: 'dnf-plugin-artifact-registry', pkg_name: 'artifact-registry-dnf-plugin', pkg_version: '((.:package-version))', reponame: 'dnf-plugin-artifact-registry-el9', sbom_file: 'gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version)).sbom.json', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el10.x86_64.rpm","gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version))-g1.el10.aarch64.rpm"', os_type: 'EL10_YUM', pkg_inside_name: 'dnf-plugin-artifact-registry', pkg_name: 'artifact-registry-dnf-plugin', pkg_version: '((.:package-version))', reponame: 'dnf-plugin-artifact-registry-el10', sbom_file: 'gs://gcp-guest-package-uploads/yum-plugin-artifact-registry/dnf-plugin-artifact-registry-((.:package-version)).sbom.json', }, ], }, buildpackagejob { package: 'artifact-registry-apt-transport', builds: ['deb13', 'deb12', 'deb12-arm64'], uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/artifact-registry-apt-transport/apt-transport-artifact-registry_((.:package-version))-g1_amd64.deb","gs://gcp-guest-package-uploads/artifact-registry-apt-transport/apt-transport-artifact-registry_((.:package-version))-g1_arm64.deb"', os_type: 'DEBIAN_ALL_APT', pkg_inside_name: 'apt-transport-artifact-registry', pkg_name: 'artifact-registry-apt-transport', pkg_version: '((.:package-version))', reponame: 'apt-transport-artifact-registry', sbom_file: 'gs://gcp-guest-package-uploads/artifact-registry-apt-transport/apt-transport-artifact-registry-((.:package-version)).sbom.json', }, ], }, buildpackagejob { package: 'compute-image-windows', builds: ['goo'], uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-windows/certgen.x86_64.((.:package-version)).0@1.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'certgen', pkg_name: 'certgen', pkg_version: '((.:package-version))', reponame: 'certgen', sbom_file: '', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-windows/google-compute-engine-auto-updater.noarch.((.:package-version))@1.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-auto-updater', pkg_name: 'google-compute-engine-auto-updater', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-auto-updater', sbom_file: '', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-windows/google-compute-engine-powershell.noarch.((.:package-version))@1.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-powershell', pkg_name: 'google-compute-engine-powershell', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-powershell', sbom_file: '', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-windows/google-compute-engine-sysprep.noarch.((.:package-version))@1.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-sysprep', pkg_name: 'google-compute-engine-sysprep', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-sysprep', sbom_file: '', }, uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-windows/google-compute-engine-ssh.x86_64.((.:package-version)).0@1.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-ssh', pkg_name: 'google-compute-engine-ssh', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-ssh', sbom_file: '', }, ], }, buildpackagejob { package: 'compute-image-tools', builds: ['goo'], name: 'build-diagnostics', uploads: [ uploadpackageversiontask { gcs_files: '"gs://gcp-guest-package-uploads/compute-image-tools/google-compute-engine-diagnostics.x86_64.((.:package-version)).0@0.goo"', os_type: 'WINDOWS_ALL_GOOGET', pkg_inside_name: 'google-compute-engine-diagnostics', pkg_name: 'google-compute-engine-diagnostics', pkg_version: '((.:package-version))', reponame: 'google-compute-engine-diagnostics', sbom_file: '', }, ], build_dir: 'cli_tools/diagnostics', }, ], resource_types: [ { name: 'registry-image-private', type: 'registry-image', source: { repository: 'gcr.io/compute-image-tools/registry-image-forked' }, }, ], resources: [ { name: 'guest-agent-stable', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-agent.git', branch: 'topic-stable', fetch_tags: true, }, }, { name: 'guest-agent-dev', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-agent.git', branch: 'dev', fetch_tags: false, }, }, { name: 'google-guest-agent', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/google-guest-agent.git', branch: 'main', fetch_tags: false, }, }, { name: 'guest-agent', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-agent.git', branch: 'main', fetch_tags: true, }, }, { name: 'guest-agent-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-agent', access_token: '((github-token.token))', }, }, { name: 'guest-agent-stable-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-agent', access_token: '((github-token.token))', }, }, { name: 'guest-oslogin', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-oslogin.git', branch: 'master', fetch_tags: true, }, }, { name: 'guest-oslogin-stbl', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-oslogin.git', branch: 'stable', fetch_tags: true, }, }, { name: 'guest-oslogin-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-oslogin', access_token: '((github-token.token))', }, }, { name: 'guest-oslogin-stbl-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-oslogin', access_token: '((github-token.token))', }, }, { name: 'guest-diskexpand', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-diskexpand.git', branch: 'master', fetch_tags: true, }, }, { name: 'guest-diskexpand-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-diskexpand', access_token: '((github-token.token))', }, }, { name: 'guest-configs', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-configs.git', branch: 'master', fetch_tags: true, }, }, { name: 'guest-configs-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'guest-configs', access_token: '((github-token.token))', }, }, { name: 'artifact-registry-yum-plugin', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/artifact-registry-yum-plugin.git', branch: 'main', fetch_tags: true, }, }, { name: 'artifact-registry-yum-plugin-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'artifact-registry-yum-plugin', access_token: '((github-token.token))', }, }, { name: 'artifact-registry-apt-transport', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/artifact-registry-apt-transport.git', branch: 'main', fetch_tags: true, }, }, { name: 'artifact-registry-apt-transport-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'artifact-registry-apt-transport', access_token: '((github-token.token))', }, }, { name: 'guest-test-infra', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/guest-test-infra.git', branch: 'master', fetch_tags: true, }, }, { name: 'compute-image-tools', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/compute-image-tools.git', branch: 'master', fetch_tags: true, }, }, { name: 'compute-image-tools-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'compute-image-tools', access_token: '((github-token.token))', }, }, { name: 'compute-image-windows', type: 'git', source: { uri: 'https://github.com/GoogleCloudPlatform/compute-image-windows.git', branch: 'master', }, }, { name: 'compute-image-windows-tag', type: 'github-release', source: { owner: 'GoogleCloudPlatform', repository: 'compute-image-windows', access_token: '((github-token.token))', }, }, ], groups: [ { name: 'guest-agent', jobs: [ 'build-guest-agent', ], }, { name: 'guest-agent-stable', jobs: [ 'build-guest-agent-stable', ], }, { name: 'guest-agent-dev', jobs: [ 'build-guest-agent-dev', ], }, { name: 'guest-oslogin', jobs: [ 'build-guest-oslogin', ], }, { name: 'guest-oslogin-stbl', jobs: [ 'build-guest-oslogin-stbl', ], }, { name: 'disk-expand', jobs: [ 'build-guest-diskexpand', ], }, { name: 'google-compute-engine', jobs: [ 'build-guest-configs', ], }, { name: 'artifact-registry-plugins', jobs: [ 'build-artifact-registry-yum-plugin', 'build-artifact-registry-apt-transport', ], }, { name: 'compute-image-windows', jobs: [ 'build-compute-image-windows', ], }, { name: 'gce-diagnostics', jobs: [ 'build-diagnostics', ], }, ], }