feat(release): setup for publishing docker images to ghcr

This commit is contained in:
2022-02-13 04:11:29 +00:00
parent 29902b2e8e
commit 1816e93170
3 changed files with 84 additions and 23 deletions

View File

@@ -28,6 +28,14 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Docker Login
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@v2 - uses: actions/setup-go@v2
with: with:
go-version: 1.16 go-version: 1.16

View File

@@ -10,18 +10,18 @@ builds:
ldflags: ldflags:
- "-s -w -X main.version={{ .Version }} -X main.commit={{ .Commit }}" - "-s -w -X main.version={{ .Version }} -X main.commit={{ .Commit }}"
goos: goos:
- darwin - "darwin"
- freebsd - "freebsd"
- linux - "linux"
- windows - "windows"
goarch: goarch:
- amd64 - "amd64"
- 386 - "386"
- arm - "arm"
- arm64 - "arm64"
goarm: goarm:
- 6 - "6"
- 7 - "7"
archives: archives:
- format: tar.gz - format: tar.gz
@@ -42,3 +42,68 @@ changelog:
exclude: exclude:
- "^docs:" - "^docs:"
- "^test:" - "^test:"
dockers:
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-amd64"
- "ghcr.io/jimeh/casecmp:latest-amd64"
dockerfile: Dockerfile
use: buildx
goos: linux
goarch: amd64
build_flag_templates:
- "--platform=linux/amd64"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-386"
- "ghcr.io/jimeh/casecmp:latest-386"
dockerfile: Dockerfile
use: buildx
goos: linux
goarch: "386"
build_flag_templates:
- "--platform=linux/386"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-arm64"
- "ghcr.io/jimeh/casecmp:latest-arm64"
use: buildx
goos: linux
goarch: arm64
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm64"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-armv6"
- "ghcr.io/jimeh/casecmp:latest-armv6"
use: buildx
goos: linux
goarch: arm
goarm: "6"
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm/v6"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-armv7"
- "ghcr.io/jimeh/casecmp:latest-armv7"
use: buildx
goos: linux
goarch: arm
goarm: "7"
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm/v7"
docker_manifests:
- name_template: ghcr.io/jimeh/casecmp:{{ .Version }}
image_templates:
- ghcr.io/jimeh/casecmp:{{ .Version }}-amd64
- ghcr.io/jimeh/casecmp:{{ .Version }}-386
- ghcr.io/jimeh/casecmp:{{ .Version }}-arm64
- ghcr.io/jimeh/casecmp:{{ .Version }}-armv6
- ghcr.io/jimeh/casecmp:{{ .Version }}-armv7
- name_template: ghcr.io/jimeh/casecmp:latest
image_templates:
- ghcr.io/jimeh/casecmp:latest-amd64
- ghcr.io/jimeh/casecmp:latest-386
- ghcr.io/jimeh/casecmp:latest-arm64
- ghcr.io/jimeh/casecmp:latest-armv6
- ghcr.io/jimeh/casecmp:latest-armv7

View File

@@ -1,17 +1,5 @@
FROM golang:1.16-alpine as builder
RUN apk add --no-cache \
git
WORKDIR /app
COPY . /app
RUN env CGO_ENABLED=0 \
go build -a -o /casecmp -ldflags "-s -w \
-X main.version=$(cat VERSION) \
-X main.commit=$(git show --format='%h' --no-patch) \
-X main.date=$(date +%Y-%m-%dT%T%z)"
FROM scratch FROM scratch
COPY --from=builder /casecmp / COPY ./casecmp /
ENV PORT 8080 ENV PORT 8080
EXPOSE 8080 EXPOSE 8080
WORKDIR / WORKDIR /