Skip to content

Commit

Permalink
Merge pull request #307 from ykulazhenkov/pr-gh-actions
Browse files Browse the repository at this point in the history
Add github actions to publish images to GH registry
  • Loading branch information
phoracek authored Apr 19, 2024
2 parents 10d2594 + 98a60a4 commit 7434914
Show file tree
Hide file tree
Showing 6 changed files with 155 additions and 5 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
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
REGISTRY ?= quay.io/kubevirt
REGISTRY ?= ghcr.io/k8snetworkplumbingwg
IMAGE_TAG ?= latest
IMAGE_GIT_TAG ?= $(shell git describe --abbrev=8 --tags)

Expand Down
4 changes: 2 additions & 2 deletions cluster/sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ REGISTRY=$registry make docker-push

ovs_cni_manifest="./examples/ovs-cni.yml"

sed 's/quay.io\/kubevirt/registry:5000/g' examples/ovs-cni.yml | ./cluster/kubectl.sh delete --ignore-not-found -f -
sed 's/ghcr.io\/k8snetworkplumbingwg/registry:5000/g' examples/ovs-cni.yml | ./cluster/kubectl.sh delete --ignore-not-found -f -

# Delete daemon sets that were deprecated/renamed
./cluster/kubectl.sh -n kube-system delete --ignore-not-found ds ovs-cni-plugin-amd64
Expand All @@ -50,4 +50,4 @@ until [ $(check_deleted "-f $ovs_cni_manifest") -eq 1 ]; do sleep 1; done
until [ $(check_deleted "ds ovs-cni-plugin-amd64") -eq 1 ]; do sleep 1; done
until [ $(check_deleted "ds ovs-vsctl-amd64") -eq 1 ]; do sleep 1; done

sed 's/quay.io\/kubevirt/registry:5000/g' examples/ovs-cni.yml | ./cluster/kubectl.sh apply -f -
sed 's/ghcr.io\/k8snetworkplumbingwg/registry:5000/g' examples/ovs-cni.yml | ./cluster/kubectl.sh apply -f -
4 changes: 2 additions & 2 deletions examples/ovs-cni.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ spec:
effect: NoSchedule
initContainers:
- name: ovs-cni-plugin
image: quay.io/kubevirt/ovs-cni-plugin:latest
image: ghcr.io/k8snetworkplumbingwg/ovs-cni-plugin:latest
command: ["/bin/sh","-c"]
args:
- >
Expand All @@ -53,7 +53,7 @@ spec:
priorityClassName: system-node-critical
containers:
- name: ovs-cni-marker
image: quay.io/kubevirt/ovs-cni-plugin:latest
image: ghcr.io/k8snetworkplumbingwg/ovs-cni-plugin:latest
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
Expand Down

0 comments on commit 7434914

Please sign in to comment.