Skip to content

Commit

Permalink
Merge pull request #33 from zeeke/publish-docker-image
Browse files Browse the repository at this point in the history
Publish container images
SchSeba authored Mar 14, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 3c83f06 + f932467 commit 14a6aa6
Showing 3 changed files with 133 additions and 1 deletion.
29 changes: 28 additions & 1 deletion .github/workflows/build-test-lint.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
name: build-test-lint
on: [push, pull_request]

env:
BUILD_PLATFORMS: linux/amd64,linux/arm64,linux/ppc64le

jobs:
build:
name: build
strategy:
matrix:
go-version: [1.18.x]
goarch: [amd64]
goarch: [amd64,arm64,ppc64le]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
@@ -24,6 +28,29 @@ jobs:
GOOS: ${{ matrix.goos }}
run: make build

build-image:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4

# Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: false
platforms: ${{ env.BUILD_PLATFORMS }}
file: ./Dockerfile


test:
runs-on: ubuntu-latest
needs: build
52 changes: 52 additions & 0 deletions .github/workflows/image-push-master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: "Push images on merge to master"

env:
IMAGE_NAME: ghcr.io/${{ github.repository }}
BUILD_PLATFORMS: linux/amd64,linux/arm64,linux/ppc64le

on:
push:
branches:
- master

jobs:
build-and-push-image:
runs-on: ubuntu-latest
env:
IMAGE_NAME: ghcr.io/${{ github.repository }}
steps:
- name: Check out the repo
uses: actions/checkout@v4

# Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}

- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: ${{ env.BUILD_PLATFORMS }}
tags: |
${{ env.IMAGE_NAME }}:latest
${{ env.IMAGE_NAME }}:${{ github.sha }}
file: ./Dockerfile
labels: ${{ steps.docker_meta.outputs.labels }}
53 changes: 53 additions & 0 deletions .github/workflows/image-push-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "Push images on release"

env:
IMAGE_NAME: ghcr.io/${{ github.repository }}
BUILD_PLATFORMS: linux/amd64,linux/arm64,linux/ppc64le

on:
push:
tags:
- v*

jobs:
build-and-push-image:
runs-on: ubuntu-latest
env:
IMAGE_NAME: ghcr.io/${{ github.repository }}
steps:
- name: Check out the repo
uses: actions/checkout@v4

# Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
flavor: |
latest=false
- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: ${{ env.BUILD_PLATFORMS }}
tags: |
${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
file: ./Dockerfile

0 comments on commit 14a6aa6

Please sign in to comment.