diff --git a/tash/golden/prefetch-dependencies/recipe.yaml b/tash/golden/prefetch-dependencies/recipe.yaml index de4d51f..61c40b7 100644 --- a/tash/golden/prefetch-dependencies/recipe.yaml +++ b/tash/golden/prefetch-dependencies/recipe.yaml @@ -3,6 +3,24 @@ add: - use-source - create-source - create-cachi2 +additionalSteps: + - at: 0 + name: skip-ta + image: registry.access.redhat.com/ubi9/ubi-minimal:9.3-1612@sha256:119ac25920c8bb50c8b5fd75dcbca369bf7d1f702b82f3d39663307890f0bf26 + env: + - name: INPUT + value: $(params.input) + - name: SOURCE_ARTIFACT + value: $(params.SOURCE_ARTIFACT) + script: | + if [ -z "${INPUT}" ]; then + mkdir -p /var/workdir/source + mkdir -p /var/workdir/cachi2 + echo "true" > /var/workdir/source/.skip-trusted-artifacts + echo "true" > /var/workdir/cachi2/.skip-trusted-artifacts + echo -n "${SOURCE_ARTIFACT}" > $(results.SOURCE_ARTIFACT.path) + echo -n "" > $(results.CACHI2_ARTIFACT.path) + fi description: |- Task that uses Cachi2 to prefetch build dependencies. The fetched dependencies and the application source code are stored as a trusted artifact in the provided OCI repository. diff --git a/tash/golden/prefetch-dependencies/ta.yaml b/tash/golden/prefetch-dependencies/ta.yaml index 69eed7f..bfbc121 100644 --- a/tash/golden/prefetch-dependencies/ta.yaml +++ b/tash/golden/prefetch-dependencies/ta.yaml @@ -57,6 +57,22 @@ spec: - mountPath: /var/workdir name: workdir steps: + - name: skip-ta + image: registry.access.redhat.com/ubi9/ubi-minimal:9.3-1612@sha256:119ac25920c8bb50c8b5fd75dcbca369bf7d1f702b82f3d39663307890f0bf26 + env: + - name: INPUT + value: $(params.input) + - name: SOURCE_ARTIFACT + value: $(params.SOURCE_ARTIFACT) + script: | + if [ -z "${INPUT}" ]; then + mkdir -p /var/workdir/source + mkdir -p /var/workdir/cachi2 + echo "true" > /var/workdir/source/.skip-trusted-artifacts + echo "true" > /var/workdir/cachi2/.skip-trusted-artifacts + echo -n "${SOURCE_ARTIFACT}" > $(results.SOURCE_ARTIFACT.path) + echo -n "" > $(results.CACHI2_ARTIFACT.path) + fi - image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:4e39fb97f4444c2946944482df47b39c5bbc195c54c6560b0647635f553ab23d name: use-trusted-artifact args: diff --git a/tash/recipe.go b/tash/recipe.go index 557f2f0..42cd6e3 100644 --- a/tash/recipe.go +++ b/tash/recipe.go @@ -11,9 +11,15 @@ import ( "sigs.k8s.io/yaml" ) +type AdditionalStep struct { + pipeline.Step + At int `json:"at"` +} + type Recipe struct { Add []string `json:"add"` AddEnvironment []core.EnvVar `json:"addEnvironment"` + AdditionalSteps []AdditionalStep `json:"additionalSteps"` AddParams pipeline.ParamSpecs `json:"addParams"` AddResult []pipeline.TaskResult `json:"addResult"` AddVolume []core.Volume `json:"addVolume"` diff --git a/tash/ta.go b/tash/ta.go index 9d31908..188c26e 100644 --- a/tash/ta.go +++ b/tash/ta.go @@ -309,5 +309,9 @@ func perform(task *pipeline.Task, recipe *Recipe) error { task.Spec.Steps = append(task.Spec.Steps, create) } + for _, additional := range recipe.AdditionalSteps { + task.Spec.Steps = slices.Insert(task.Spec.Steps, additional.At, additional.Step) + } + return nil }