Skip to content

Updated Release Pipeline #5

Updated Release Pipeline

Updated Release Pipeline #5

Workflow file for this run

name: Release to Dockerhub
env:
REGISTRY: ghcr.io
on:
push:
# Versioning with v23.1 -> year.term
tags:
- 'v[0-9]+.[0-9]+'
jobs:
base_images:
strategy:
matrix:
base_images: [alpine, debian, ubuntu]
runs-on: ubuntu-latest
steps:
- name: Set time
run: echo "BUILD_DATE=$(date +%s)" >> $GITHUB_ENV
- name: downcase REPO
run: echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v3.4.0
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
with:
images: unibaktr/${{ matrix.base_images }}
flavor: |
latest=auto
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
context: ./base_images/
file: ./base_images/${{ matrix.base_images }}.dockerfile
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
singlestage_images_alpine:
needs: base_images
strategy:
matrix:
singlestage_images: [ab, apache, coredns, frr, ipv6, quagga, traefik, wireguard, sflowrt]
runs-on: ubuntu-latest
steps:
- name: Set time
run: echo "BUILD_DATE=$(date +%s)" >> ${GITHUB_ENV}
- name: downcase REPO
run: echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v3.4.0
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
with:
images: unibaktr/alpine
flavor: |
latest=false
tags: |
type=raw,value=${{ matrix.singlestage_images }}
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
context: ./singlestage_images/
file: ./singlestage_images/${{ matrix.singlestage_images }}.dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
image=unibaktr/alpine
- name: List images
run: docker image ls
singlestage_images_ubuntu:
needs: base_images
strategy:
matrix:
singlestage_images: [p4]
runs-on: ubuntu-latest
steps:
- name: Set time
run: echo "BUILD_DATE=$(date +%s)" >> ${GITHUB_ENV}
- name: downcase REPO
run: echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v3.4.0
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
with:
images: unibaktr/ubuntu
flavor: |
latest=false
tags: |
type=raw,value=${{ matrix.singlestage_images }}
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
context: ./singlestage_images/
file: ./singlestage_images/${{ matrix.singlestage_images }}.dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
image=unibaktr/ubuntu
- name: List images
run: docker image ls
multistage_images_alpine:
needs: base_images
strategy:
matrix:
multistage_images: [softether, whoami, ovs]
runs-on: ubuntu-latest
steps:
- name: Set time
run: echo "BUILD_DATE=$(date +%s)" >> ${GITHUB_ENV}
- name: downcase REPO
run: echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v3.4.0
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
with:
images: unibaktr/alpine
flavor: |
latest=false
tags: |
type=raw,value=${{ matrix.multistage_images }}
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
context: ./multistage_images/
file: ./multistage_images/${{ matrix.multistage_images }}.dockerfile
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
image=unibaktr/alpine
- name: List images
run: docker image ls
multistage_images_debian:
needs: base_images
strategy:
matrix:
multistage_images: [onos]
runs-on: ubuntu-latest
steps:
- name: Set time
run: echo "BUILD_DATE=$(date +%s)" >> ${GITHUB_ENV}
- name: downcase REPO
run: echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v3.4.0
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
with:
images: unibaktr/debian
flavor: |
latest=false
tags: |
type=raw,value=${{ matrix.multistage_images }}
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
context: ./multistage_images/
file: ./multistage_images/${{ matrix.multistage_images }}.dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
image=unibaktr/debian
- name: List images
run: docker image ls