Skip to content

Commit

Permalink
Add github actions to publish images to GH registry
Browse files Browse the repository at this point in the history
Signed-off-by: Yury Kulazhenkov <ykulazhenkov@nvidia.com>
  • Loading branch information
ykulazhenkov committed Apr 18, 2024
1 parent 10d2594 commit 8692179
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/image-build-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: image-build-test
on: [push, pull_request]

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

jobs:
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: Prepare version file
run: ./hack/get_version.sh > .version

- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: false
# no need to explicitly set goarch,
# correct arch will be selected for each build platform
build-args: |
goarch=
platforms: ${{ env.BUILD_PLATFORMS }}
file: ./cmd/Dockerfile
57 changes: 57 additions & 0 deletions .github/workflows/image-push-main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: "Push images on merge to main"

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

on:
push:
branches:
- main

jobs:
build-and-push-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: 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: Prepare version file
run: ./hack/get_version.sh > .version

- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: true
# no need to explicitly set goarch,
# correct arch will be selected for each build platform
build-args: |
goarch=
platforms: ${{ env.BUILD_PLATFORMS }}
tags: |
${{ env.IMAGE_NAME }}:latest
${{ env.IMAGE_NAME }}:${{ github.sha }}
file: ./cmd/Dockerfile
labels: ${{ steps.docker_meta.outputs.labels }}
58 changes: 58 additions & 0 deletions .github/workflows/image-push-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: "Push images on release"

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

on:
push:
tags:
- v*

jobs:
build-and-push-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: 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: Prepare version file
run: ./hack/get_version.sh > .version

- name: Build and push container image
uses: docker/build-push-action@v5
with:
context: .
push: true
# no need to explicitly set goarch,
# correct arch will be selected for each build platform
build-args: |
goarch=
platforms: ${{ env.BUILD_PLATFORMS }}
tags: |
${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
file: ./cmd/Dockerfile

0 comments on commit 8692179

Please sign in to comment.