mirror of
https://github.com/k8snetworkplumbingwg/multus-cni.git
synced 2026-07-14 13:47:24 +00:00
275 lines
9.9 KiB
YAML
275 lines
9.9 KiB
YAML
name: Image push release
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
jobs:
|
|
push-amd64:
|
|
name: Image push/amd64
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-amd64
|
|
${{ steps.docker_meta.outputs.tags }}-amd64
|
|
file: deployments/Dockerfile
|
|
|
|
push-arm64:
|
|
name: Image push/arm64
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-arm64
|
|
${{ steps.docker_meta.outputs.tags }}-arm64
|
|
file: deployments/Dockerfile.arm64
|
|
|
|
push-arm32:
|
|
name: Image push/arm32
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-arm32
|
|
${{ steps.docker_meta.outputs.tags }}-arm32
|
|
file: deployments/Dockerfile.arm32
|
|
|
|
push-ppc64le:
|
|
name: Image push/ppc64le
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-ppc64le
|
|
${{ steps.docker_meta.outputs.tags }}-ppc64le
|
|
file: deployments/Dockerfile.ppc64le
|
|
|
|
push-s390x:
|
|
name: Image push/s390x
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-s390x
|
|
${{ steps.docker_meta.outputs.tags }}-s390x
|
|
file: deployments/Dockerfile.s390x
|
|
|
|
push-origin:
|
|
name: Image push/origin
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Push container image
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}:stable-origin
|
|
${{ steps.docker_meta.outputs.tags }}-origin
|
|
file: deployments/Dockerfile.openshift
|
|
|
|
push-manifest:
|
|
needs: [push-amd64, push-arm64, push-ppc64le, push-s390x]
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
REPOSITORY: ghcr.io/${{ github.repository }}
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: crazy-max/ghaction-docker-meta@v1
|
|
with:
|
|
images: ghcr.io/${{ github.repository }}
|
|
tag-latest: false
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Create manifest for multi-arch images
|
|
if: github.repository_owner == 'k8snetworkplumbingwg'
|
|
run: |
|
|
# get artifacts from previous steps
|
|
docker pull ${{ steps.docker_meta.outputs.tags }}-amd64
|
|
docker pull ${{ steps.docker_meta.outputs.tags }}-arm64
|
|
docker pull ${{ steps.docker_meta.outputs.tags }}-arm32
|
|
docker pull ${{ steps.docker_meta.outputs.tags }}-ppc64le
|
|
docker pull ${{ steps.docker_meta.outputs.tags }}-s390x
|
|
docker manifest create ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-amd64 ${{ steps.docker_meta.outputs.tags }}-arm64 ${{ steps.docker_meta.outputs.tags }}-arm32 ${{ steps.docker_meta.outputs.tags }}-ppc64le ${{ steps.docker_meta.outputs.tags }}-s390x
|
|
docker manifest annotate ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-amd64 --arch amd64
|
|
docker manifest annotate ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-arm64 --arch arm64
|
|
docker manifest annotate ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-arm32 --arch arm
|
|
docker manifest annotate ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-ppc64le --arch ppc64le
|
|
docker manifest annotate ${{ steps.docker_meta.outputs.tags }} ${{ steps.docker_meta.outputs.tags }}-s390x --arch s390x
|
|
docker manifest push ${{ steps.docker_meta.outputs.tags }}
|
|
docker pull ${{ env.REPOSITORY }}:stable-amd64
|
|
docker pull ${{ env.REPOSITORY }}:stable-arm64
|
|
docker pull ${{ env.REPOSITORY }}:stable-arm32
|
|
docker pull ${{ env.REPOSITORY }}:stable-ppc64le
|
|
docker pull ${{ env.REPOSITORY }}:stable-s390x
|
|
docker manifest create ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-amd64 ${{ env.REPOSITORY }}:stable-arm64 ${{ env.REPOSITORY }}:stable-arm32 ${{ env.REPOSITORY }}:stable-ppc64le ${{ env.REPOSITORY }}:stable-s390x
|
|
docker manifest annotate ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-amd64 --arch amd64
|
|
docker manifest annotate ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-arm64 --arch arm64
|
|
docker manifest annotate ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-arm32 --arch arm
|
|
docker manifest annotate ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-ppc64le --arch ppc64le
|
|
docker manifest annotate ${{ env.REPOSITORY }}:stable ${{ env.REPOSITORY }}:stable-s390x --arch s390x
|
|
docker manifest push ${{ env.REPOSITORY }}:stable
|