springernature / halfpipe

CLI for interacting with halfpipe
BSD 3-Clause "New" or "Revised" License
12 stars 3 forks source link
ee-release-engineering engineering-enablement

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.