Adding new types and adapting copies of all the old types to match the
new Manifest schema:
New types:
- Stages
- org.osbuild.ostree.init
- org.osbuild.ostree.pull
- org.osbuild.ostree.preptree (replaces org.osbuild.rpm-ostree)
- org.osbuild.curl
- Converted from assemblers
The concept of a Build and Assembler stage in gone now. Instead they
are regular Stages like any other.
- org.osbuild.oci-archive
- org.osbuild.ostree.commit
- Sources
- org.osbuild.curl
- org.osbuild.ostree
- Inputs
- org.osbuild.files
- org.osbuild.ostree
Types with changes:
- Stages
- org.osbuild.rpm:
- New input structure for defining packages
- New options
Basically copies:
- The rest simply rename the `Name` field to `Type`
Decoding types with interface fields:
Types that contain interfaces with multiple implementations implement
their own UnmarshalJSON method. In these cases, we use a JSON decoder
with the `DisallowUnknownFields` option to catch errors during the
deserialization while trying to determine which implementation matches
the data.
Copied tests for copied types are adapted accordingly.
22 lines
508 B
Go
22 lines
508 B
Go
package osbuild2
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
type PipelineResult []StageResult
|
|
|
|
type StageResult struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Output string `json:"output"`
|
|
Success bool `json:"success,omitempty"`
|
|
Error string `json:"string,omitempty"`
|
|
}
|
|
|
|
type Result struct {
|
|
Type string `json:"type"`
|
|
Success bool `json:"success"`
|
|
Error json.RawMessage `json:"error"`
|
|
Log map[string]PipelineResult `json:"log"`
|
|
}
|