Skip to content

Latest commit

 

History

History
77 lines (51 loc) · 2.43 KB

README.md

File metadata and controls

77 lines (51 loc) · 2.43 KB

Package build workflows

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.

Repo layout for package building

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

Workflow invocation

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.

Supported types

Each packagebuild workflow corresponds to a single package type. All builds default to the x86_64 architecture unless otherwise specified.

Debian

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

Enterprise Linux

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

GooGet

The build_goo.wf.json (GooGet) workflow launches a Debian 10 instance and produces .goo packages.