Skip to content

Codefresh

Codefresh uses Docker based pipelines where all steps must be Docker containers. Using GoReleaser is very easy via the existing Docker image.

Here is an example pipeline that builds a Go application and then uses GoReleaser.

version: '1.0'
stages:
  - prepare
  - build
  - release
steps:
  main_clone:
    title: 'Cloning main repository...'
    type: git-clone
    repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}'
    revision: '${{CF_REVISION}}'
    stage: prepare
  BuildMyApp:
    title: Compiling go code
    stage: build
    image: 'golang:1.20'
    commands:
      - go build
  ReleaseMyApp:
    title: Creating packages
    stage: release
    image: 'goreleaser/goreleaser'
    commands:
      - goreleaser release --clean

You need to pass the variable GITHUB_TOKEN in the Codefresh UI that contains credentials to your GitHub account or load it from shared configuration. You should also restrict this pipeline to run only on tags when you add git triggers on it.

More details can be found in the GoReleaser example page.