Skip to content

Commit

Permalink
ci: add GoReleaser release workload and automation
Browse files Browse the repository at this point in the history
  • Loading branch information
jamestelfer committed May 6, 2024
1 parent 3c7baf4 commit 1c8ba93
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Release

on:
push:
# version tags are protected in this repository
tags:
- "v*"

permissions:
contents: write

jobs:
goreleaser:
# deploy with the correct environment to allow DockerHub access
environment: Publish

runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Configure Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Release
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: v1.25.1
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75 changes: 75 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json

builds:
- id: release
binary: chinmina-bridge
env:
- CGO_ENABLED=0
goos:
- darwin
- linux
goarch:
- amd64
- arm64

checksum:
name_template: "checksums.txt"

archives:
- format: tar.gz
name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}"

changelog:
use: github-native
sort: asc

release:
prerelease: auto
header: |
# chinmina-bridge ({{ .Version }})
Binaries of this build can be found below, if these are needed.
The preferred way to consume a release is via its Docker image:
```text
chinmina/chinmina-bridge:{{ .Tag }}
```
The image is published for Linux for both x86-64 and ARM-64.
kos:
-
id: chinmina-bridge
build: release
working_dir: .
base_image: cgr.dev/chainguard/static

repository: chinmina

# Platforms to build and publish.
#
# Default: 'linux/amd64'
platforms:
- linux/amd64
- linux/arm64

# Tag to build and push.
# Empty tags are ignored.
#
# Default: 'latest'
# Templates: allowed
tags:
- "{{if not .Prerelease}}latest{{end}}"
- "{{.Tag}}"

sbom: spdx

# Bare uses a tag on the $KO_DOCKER_REPO without anything additional.
bare: true

# Whether to preserve the full import path after the repository name.
preserve_import_paths: false

# Whether to use the base path without the MD5 hash after the repository name.
base_import_paths: true

0 comments on commit 1c8ba93

Please sign in to comment.