code: func (Pipe) Publish(ctx *context.Context) error {
  	if len(ctx.Config.Puts) == 0 {
  		return pipe.Skip("put section is not configured")
  	}
  
  	// Check requirements for every instance we have configured.
  	// If not fulfilled, we can skip this pipeline
  	for _, instance := range ctx.Config.Puts {
  		instance := instance
  		if skip := http.CheckConfig(ctx, &instance, "put"); skip != nil {
  			return pipe.Skip(skip.Error())
  		}
  	}
  
  	return http.Upload(ctx, ctx.Config.Puts, "put", func(res *h.Response) error {
  		if c := res.StatusCode; c < 200 || 299 < c {
  			return errors.Errorf("unexpected http response status: %s", res.Status)
  		}
  		return nil
  	})
  
  }
docs: // Publish artifacts