code: func (Pipe) Run(ctx *context.Context) error {
  	if ctx.Config.Snapcraft.Summary == "" && ctx.Config.Snapcraft.Description == "" {
  		return pipe.Skip("no summary nor description were provided")
  	}
  	if ctx.Config.Snapcraft.Summary == "" {
  		return ErrNoSummary
  	}
  	if ctx.Config.Snapcraft.Description == "" {
  		return ErrNoDescription
  	}
  	_, err := exec.LookPath("snapcraft")
  	if err != nil {
  		return ErrNoSnapcraft
  	}
  
  	var g = semerrgroup.New(ctx.Parallelism)
  	for platform, binaries := range ctx.Artifacts.Filter(
  		artifact.And(
  			artifact.ByGoos("linux"),
  			artifact.ByType(artifact.Binary),
  		),
  	).GroupByPlatform() {
  		arch := linux.Arch(platform)
  		if arch == "armel" {
  			log.WithField("arch", arch).Warn("ignored unsupported arch")
  			continue
  		}
  		binaries := binaries
  		g.Go(func() error {
  			return create(ctx, arch, binaries)
  		})
  	}
  	return g.Wait()
  }
docs: // Run the pipe