diff --git a/atc/builds/planner.go b/atc/builds/planner.go index f0ceb005a91..82cbef11f21 100644 --- a/atc/builds/planner.go +++ b/atc/builds/planner.go @@ -170,6 +170,11 @@ func (visitor *planVisitor) VisitPut(step *atc.PutStep) error { plan.Put.TypeImage = visitor.resourceTypes.ImageForType(plan.ID, resource.Type, step.Tags, visitor.manuallyTriggered) + if step.NoGet { + visitor.plan = plan + return nil + } + dependentGetPlan := visitor.planFactory.NewPlan(atc.GetPlan{ Type: resource.Type, Name: logicalName, diff --git a/atc/builds/planner_test.go b/atc/builds/planner_test.go index 88e4c4c8464..f03582722a3 100644 --- a/atc/builds/planner_test.go +++ b/atc/builds/planner_test.go @@ -1168,6 +1168,77 @@ var factoryTests = []PlannerTest{ } }`, }, + { + Title: "put step with no_get", + Config: &atc.PutStep{ + Name: "some-name", + Resource: "some-resource", + Params: atc.Params{"some": "params"}, + Tags: atc.Tags{"tag-1", "tag-2"}, + Inputs: &atc.InputsConfig{All: true}, + NoGet: true, + }, + Inputs: []db.BuildInput{ + { + Name: "some-name", + Version: atc.Version{"some": "version"}, + }, + }, + ManuallyTriggered: true, + CompareIDs: true, + PlanJSON: `{ + "id": "1", + "put": { + "name": "some-name", + "type": "some-resource-type", + "resource": "some-resource", + "source": { + "some": "source", + "default-key": "default-value" + }, + "params": {"some":"params"}, + "tags": ["tag-1", "tag-2"], + "inputs": "all", + "image": { + "base_type": "some-base-resource-type", + "check_plan": { + "id": "1/image-check", + "check": { + "name": "some-resource-type", + "type": "some-base-resource-type", + "resource_type": "some-resource-type", + "source": { "some": "type-source" }, + "image": { + "base_type": "some-base-resource-type" + }, + "interval": "1m0s", + "skip_interval": true, + "tags": [ + "tag-1", + "tag-2" + ] + } + }, + "get_plan": { + "id": "1/image-get", + "get": { + "name": "some-resource-type", + "type": "some-base-resource-type", + "source": { "some": "type-source" }, + "image": { + "base_type": "some-base-resource-type" + }, + "version_from": "1/image-check", + "tags": [ + "tag-1", + "tag-2" + ] + } + } + } + } + }`, + }, { Title: "task step", diff --git a/atc/steps.go b/atc/steps.go index a02f79bea48..c7c6b3f669c 100644 --- a/atc/steps.go +++ b/atc/steps.go @@ -323,6 +323,7 @@ type PutStep struct { Tags Tags `json:"tags,omitempty"` GetParams Params `json:"get_params,omitempty"` Timeout string `json:"timeout,omitempty"` + NoGet bool `json:"no_get,omitempty"` } func (step *PutStep) ResourceName() string {