Skip to content

Commit

Permalink
revamp GH actions and Docker
Browse files Browse the repository at this point in the history
  • Loading branch information
jessepeterson committed Aug 11, 2023
1 parent fb2ddfd commit 089006d
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 40 deletions.
33 changes: 0 additions & 33 deletions .github/workflows/go.yml

This file was deleted.

81 changes: 81 additions & 0 deletions .github/workflows/on-push-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
on:
push:
branches: [main]
tags: ["v*.*.*"]
pull_request:
types: [opened, reopened, synchronize]
jobs:
format-build-test:
strategy:
matrix:
go-version: ['1.19.x']
platform: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0

- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
with:
go-version: ${{ matrix.go-version }}

- if: matrix.platform == 'ubuntu-latest'
run: if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then exit 1; fi

- run: go build -v ./...

- run: make test
docker-build-push:
if: github.event_name != 'pull_request'
needs: format-build-test
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0

- uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: docker/setup-buildx-action@4c0219f9ac95b02789c1075625400b2acbff50b1 # v2.9.1

- uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4.6.0
id: meta
with:
images: |
ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 # v4.1.1
with:
context: .
push: true
file: Dockerfile.buildx
platforms: linux/amd64,linux/arm64,linux/arm
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
release-zips:
if: github.event_name != 'pull_request'
needs: format-build-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0

- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
with:
go-version: '1.19'

- run: CGO_ENABLED=0 make release

- uses: actions/upload-artifact@v3
with:
name: release-zips
path: "*.zip"
20 changes: 20 additions & 0 deletions .github/workflows/on-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
on:
release:
types: [published]
jobs:
release-zips:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0

- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
with:
go-version: '1.19'

- run: CGO_ENABLED=0 make release

- run: gh release upload ${{ github.event.release.tag_name }} *.zip
env:
GH_TOKEN: ${{ github.token }}
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
FROM gcr.io/distroless/static

COPY kmfddm-linux-amd64 /kmfddm
ARG TARGETOS TARGETARCH

COPY kmfddm-$TARGETOS-$TARGETARCH /usr/bin/kmfddm

EXPOSE 9002

ENTRYPOINT ["/kmfddm"]
ENTRYPOINT ["/usr/bin/kmfddm"]
21 changes: 21 additions & 0 deletions Dockerfile.buildx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM --platform=$BUILDPLATFORM golang:1.19 AS builder

WORKDIR /go/app

COPY . .

ARG TARGETOS TARGETARCH

RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
CGO_ENABLED=0 make kmfddm-$TARGETOS-$TARGETARCH

FROM gcr.io/distroless/static

ARG TARGETOS TARGETARCH

COPY --from=builder /go/app/kmfddm-$TARGETOS-$TARGETARCH /usr/bin/kmfddm

EXPOSE 8080

ENTRYPOINT ["/usr/bin/kmfddm"]
9 changes: 4 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ KMFDDM=\
kmfddm-darwin-arm64 \
kmfddm-darwin-amd64 \
kmfddm-linux-amd64 \
kmfddm-linux-arm64 \
kmfddm-linux-arm \
kmfddm-windows-amd64.exe

SUPPLEMENTAL=\
Expand Down Expand Up @@ -34,12 +36,9 @@ kmfddm-%-$(VERSION).zip: kmfddm-%.exe $(SUPPLEMENTAL)
rm -rf $(subst .zip,,$@)

clean:
rm -f kmfddm-* kmfddm-*.zip
rm -f kmfddm-*

release: \
kmfddm-darwin-amd64-$(VERSION).zip \
kmfddm-darwin-arm64-$(VERSION).zip \
kmfddm-linux-amd64-$(VERSION).zip
release: $(foreach bin,$(GAT),$(subst .exe,,$(bin))-$(VERSION).zip)

test:
go test -v -cover -race ./...
Expand Down

0 comments on commit 089006d

Please sign in to comment.