Skip to content

fix: updates

fix: updates #182

Workflow file for this run

name: ci
on:
push:
jobs:
staticcheck:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: dominikh/staticcheck-action@v1
with:
version: "2023.1.6"
tests:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
name: [unit]
go-version: [1.21]
runs-on: ${{ matrix.os }}
name: test (${{ matrix.name }}, ${{ matrix.os }})
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
cache: true
- name: Create temporary .env
run: touch .env
- name: Run [${{ matrix.name }} - ${{ matrix.os }}] tests
run: make test
builds:
timeout-minutes: 20
strategy:
matrix:
go-version: [1.21]
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
name: build (${{ matrix.os }})
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Create temporary .env
run: touch .env
- name: Build [go${{ matrix.go-version }} - ${{ matrix.os }}]
run: make build
release-binaries:
if: github.ref_type == 'tag'
strategy:
matrix:
go-version: [ 1.21 ]
os: [ ubuntu-22.04]
needs: [ tests, staticcheck, builds ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run GoReleaser Linux
run: |
docker run \
--rm \
--privileged \
-e CGO_ENABLED=1 \
-e GITHUB_TOKEN \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-w /go/src/$(PACKAGE_NAME) \
ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \
--clean --config .goreleaser-Linux.yml
env:
PACKAGE_NAME: github.com/AndriyKalashnykov/go-httpbin
GOLANG_CROSS_VERSION: v1.21
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run GoReleaser MacOS
run: |
docker run \
--rm \
--privileged \
-e CGO_ENABLED=1 \
-e GITHUB_TOKEN \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-w /go/src/$(PACKAGE_NAME) \
ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \
--clean --config .goreleaser-Darwin-cross.yml
env:
PACKAGE_NAME: github.com/AndriyKalashnykov/go-httpbin
GOLANG_CROSS_VERSION: v1.21
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release-docker-images:
if: github.ref_type == 'tag'
runs-on: ubuntu-latest
needs: [tests, staticcheck, builds]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Convert owner to lower case
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: '${{ github.repository_owner }}'
- name: Login to image repository
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GH_ACCESS_TOKEN }}
- name: GitHub Tag Name example
run: |
echo "Tag name from GITHUB_REF_NAME: $GITHUB_REF_NAME"
echo "Tag name from github.ref_name: ${{ github.ref_name }}"
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ env.OWNER_LC }}/kafka-confluent-go-consumer
flavor: latest=true
tags: |
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
type=semver,pattern=v{{version}}
labels: |
org.opencontainers.image.vendor=Andriy Kalashnykov - andriykalashnykov@gmail.com
org.opencontainers.image.title=Confluent Kafka Cloud Consumer in Go
org.opencontainers.image.description=Confluent Kafka Cloud Consumer in Go
org.opencontainers.image.licenses=MIT
org.opencontainers.image.version=${{ github.ref_name }}"
io.artifacthub.package.readme-url=https://raw.githubusercontent.com/AndriyKalashnykov/go-kafka-confluent-examples/main/README.md
io.artifacthub.package.maintainers=[{\"name\":\"Andriy Kalashnykov\",\"email\":\"andriykalashnykov@gmail.com\"}]
io.artifacthub.package.license=MIT
- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.consumer
platforms: linux/amd64,linux/arm64
push: true
provenance: false
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Output container image digest
run: echo ${{ steps.docker_build.outputs.digest }}