halfpipe

package module
v0.0.0-...-9e45a68 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2024 License: BSD-3-Clause Imports: 5 Imported by: 0

README

Hello!

This is the friendly Halfpipe CLI. Try it out :)

Friendly Halfpipe CLI huh?

Yeah, it takes a small YAML schema and renders a complete Concourse pipeline for you

How does it work? This README is kinda slim...

All documentation and further information can be found here

Ah! That's cool, can I use it in my company?

In theory yes, but there is some Springer Nature specific stuff in here. With that said nothing is stopping us from extracting those bits, submit a issue! :)

How do I test and build?

Halfpipe is built with Go

./build.sh

# or if you don't have Go installed you can build in docker
./docker-build.sh

CI

The main pipeline is in Concourse

It runs the build script on every commit to main.

We also use GitHub Actions for dependabot and CodeQL scanning

Updating Dependencies

go

dependabot will raise PRs. Alternatively, to manually update all deps:

go get -t -u ./... && go mod tidy
GitHub actions

For third party actions we use in halfpipe rendered workflows - dependabot will raise PRs but these are just informational, we have to manually update the halfpipe actions renderer.

Releasing

Releasing is triggered by manually bumping the version (major, minor or patch) in Concourse. Binaries are built for different platforms and published to artifactory. The halfpipe cli checks artifactory for a newer release and updates itself. A GitHub release is also created.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

type Controller interface {
	Process(man manifest.Manifest) (Response, error)
	DefaultAndMap(man manifest.Manifest) (updated manifest.Manifest, err error)
}

func NewController

func NewController(defaulter defaults.Defaults, mapper mapper.Mapper, linters []linters.Linter, renderer Renderer) Controller

type Renderer

type Renderer interface {
	Render(manifest manifest.Manifest) (string, error)
}

type Response

type Response struct {
	ConfigYaml  string
	Project     project.Data
	LintResults linters.LintResults
	Platform    manifest.Platform
}

func (Response) String

func (r Response) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL