This directory contains the 'package builder', which is a set of Daisy workflows and startup scripts. A package build workflow will accept a git repository set up for package building, build it and produce a system package. Optionally, it can also generate and export the SBOM for the package.
We use these packagebuild workflows from our Concourse pipelines and Prow jobs.
The package builder expects to check out a git repository that contains a
packaging/
directory. This directory may contain one or more of:
- 1 or more RPM spec files.
- A
debian/
directory, following Debian packaging standards - A
googet/
directory, containing GooGet specs and scripts
Build workflows accept the following parameters:
- gcs_path - where to uploaded the resulting package, e.g. gs://my-bucket/
- repo_owner - the repo owner, for example 'GoogleCloudPlatform'
- repo_name - the repo name, for example 'guest-agent'
- git_ref - the git ref to check out, for example 'main'
- version - the version for the resulting package, for example '20221025.00'
- build_dir - (optional) the subdirectory in the repo to
cd
into before starting the build - sbom_util_gcs_root - (optional) the path where sbomutil is stored.
Each packagebuild workflow corresponds to a single package type. All builds default to the x86_64 architecture unless otherwise specified.
Debian workflows launch an instance of the specified Debian release and produce .deb packages.
Available workflows:
- build_deb9.wf.json
- build_deb10.wf.json
- build_deb11.wf.json
An ARM64 workflow is also included:
- build_deb11_arm64.wf.json
EL (Enterprise Linux) workflows launch an instance of a predefined EL type and produce .rpm packages. The workflows use the OS that was best suited at the time of development.
Available workflows:
- build_el6.wf.json - uses CentOS 6
- build_el7.wf.json - uses CentOS 7
- build_el8.wf.json - uses RHEL 8
- build_el9.wf.json - uses CentOS Stream 9
ARM64 workflows are also included:
- build_el8_arm64.wf.json - uses the GCP optimized version of Rocky Linux 8
- build_el9_arm64.wf.json - uses RHEL 9
The build_goo.wf.json
(GooGet) workflow launches a Debian 10 instance and
produces .goo packages.