Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BakedToolchains ¶
func BakedToolchains() []string
BakedToolchains are the toolchains every managed worker image must pin. The representative benchmark installers short-circuit when the pinned version is already on PATH, and actions/setup-go resolves a pre-seeded runner tool cache, so a complete set turns per-job toolchain installation into a no-op.
Types ¶
type BrowserSmoke ¶ added in v1.0.1
type BrowserSmoke struct {
Version string `json:"version,omitempty" yaml:"version,omitempty"`
UpstreamRef string `json:"upstream_ref,omitempty" yaml:"upstream_ref,omitempty"`
Archive string `json:"archive,omitempty" yaml:"archive,omitempty"`
DownloadURL string `json:"download_url,omitempty" yaml:"download_url,omitempty"`
ArchiveSHA256 string `json:"archive_sha256,omitempty" yaml:"archive_sha256,omitempty"`
BinaryPath string `json:"binary_path,omitempty" yaml:"binary_path,omitempty"`
}
BrowserSmoke pins browser bytes used only to launch-test the image. The archive is injected into the disposable smoke instance and deleted with it; consumer jobs install the browser version from their own lockfile.
type Guest ¶
type Guest struct {
BuilderDiskGiB int `json:"builder_disk_gib" yaml:"builder_disk_gib"`
Packages []string `json:"packages" yaml:"packages"`
PackageVersions map[string]string `json:"package_versions,omitempty" yaml:"package_versions,omitempty"`
Variant string `json:"variant,omitempty" yaml:"variant,omitempty"`
DockerActionBaseRef string `json:"docker_action_base_ref,omitempty" yaml:"docker_action_base_ref,omitempty"`
Browser string `json:"browser,omitempty" yaml:"browser,omitempty"`
}
func (Guest) BrowserCapable ¶ added in v1.0.1
func (Guest) DockerCapable ¶
func (Guest) EffectiveVariant ¶
type Image ¶
type Image struct {
Type string `json:"type,omitempty" yaml:"type,omitempty"`
Alias string `json:"alias" yaml:"alias"`
CurrentAlias string `json:"current_alias" yaml:"current_alias"`
PreviousAlias string `json:"previous_alias" yaml:"previous_alias"`
SourceAlias string `json:"source_alias" yaml:"source_alias"`
OS string `json:"os" yaml:"os"`
Release string `json:"release" yaml:"release"`
Architecture string `json:"architecture" yaml:"architecture"`
}
func (Image) EffectiveType ¶
type Manifest ¶
type Manifest struct {
SchemaVersion int `json:"schema_version" yaml:"schema_version"`
Image Image `json:"image" yaml:"image"`
Source Source `json:"source" yaml:"source"`
Runner Runner `json:"runner" yaml:"runner"`
CompilerCache Tool `json:"compiler_cache" yaml:"compiler_cache"`
Toolchains []Toolchain `json:"toolchains" yaml:"toolchains"`
BrowserSmoke *BrowserSmoke `json:"browser_smoke,omitempty" yaml:"browser_smoke,omitempty"`
Guest Guest `json:"guest" yaml:"guest"`
}
Manifest pins every network-fetched input used to build a worker image. It intentionally contains no credentials or mutable aliases as sources.
func (Manifest) CanonicalJSON ¶
func (Manifest) Fingerprint ¶
type Source ¶
type Source struct {
ReleaseID string `json:"release_id" yaml:"release_id"`
BaseURL string `json:"base_url" yaml:"base_url"`
ChecksumsFile string `json:"checksums_file" yaml:"checksums_file"`
SignatureFile string `json:"signature_file" yaml:"signature_file"`
MetadataFile string `json:"metadata_file" yaml:"metadata_file"`
MetadataSHA256 string `json:"metadata_sha256" yaml:"metadata_sha256"`
DiskFile string `json:"disk_file" yaml:"disk_file"`
DiskSHA256 string `json:"disk_sha256" yaml:"disk_sha256"`
RootfsFile string `json:"rootfs_file,omitempty" yaml:"rootfs_file,omitempty"`
RootfsSHA256 string `json:"rootfs_sha256,omitempty" yaml:"rootfs_sha256,omitempty"`
KeyringPath string `json:"keyring_path" yaml:"keyring_path"`
SignerFingerprint string `json:"signer_fingerprint" yaml:"signer_fingerprint"`
}
type Tool ¶
type Tool struct {
Name string `json:"name" yaml:"name"`
Version string `json:"version" yaml:"version"`
SourceCommit string `json:"source_commit" yaml:"source_commit"`
Archive string `json:"archive" yaml:"archive"`
DownloadURL string `json:"download_url" yaml:"download_url"`
ArchiveSHA256 string `json:"archive_sha256" yaml:"archive_sha256"`
BinaryPath string `json:"binary_path" yaml:"binary_path"`
BinarySHA256 string `json:"binary_sha256" yaml:"binary_sha256"`
}
Tool pins a release artifact and its extracted executable independently. SourceCommit is provenance metadata; the release archive and installed executable remain enforced by their own SHA-256 digests.
type Toolchain ¶
type Toolchain struct {
Name string `json:"name" yaml:"name"`
Version string `json:"version" yaml:"version"`
Archive string `json:"archive" yaml:"archive"`
DownloadURL string `json:"download_url" yaml:"download_url"`
ArchiveSHA256 string `json:"archive_sha256" yaml:"archive_sha256"`
}
Toolchain pins one language toolchain that the image bakes so no job repeats its download and install. A multi-file toolchain cannot be described by a single executable digest the way Tool describes sccache, so the enforced pair is the release archive digest, which fully determines the extracted tree, and the exact version every installed executable must report after installation.
type ValidationError ¶
type ValidationError struct{ Issues []Issue }
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string