Skip to content

build docker

build docker #38

Workflow file for this run

name: Docker Builder
on:
push:
branches:
- main
- test
- other
release:
types: [published]
jobs:
docker:
runs-on: ubuntu-latest
strategy:
matrix:
include:
# --> metrics server
- NAME: metrics_server
EXTRA_CMAKE_ARGS: ""
ARCH: x86-64-v3
TAG: ""
PLATFORM: amd64
LIB: ""
LIB_VERSION: ""
DOCKERFILE: ./docker/grafana/Dockerfile
CONTEXT: ./docker/grafana
# --> grafana
- NAME: grafana
EXTRA_CMAKE_ARGS: ""
ARCH: x86-64-v3
TAG: ""
PLATFORM: amd64
LIB: ""
LIB_VERSION: ""
DOCKERFILE: ./docker/metrics_server/Dockerfile
CONTEXT: ./docker/metrics_server
# # --> split72
# # AMD AVX2
# - NAME: split72_release_avx2
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
# ARCH: x86-64-v3
# PLATFORM: amd64
# LIB: dpdk
# LIB_VERSION: "23.11"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
# - NAME: split72_release_with_debug_avx2
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
# ARCH: x86-64-v3
# PLATFORM: amd64
# LIB: dpdk
# LIB_VERSION: "23.11"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
# # AMD AVX512
# - NAME: split72_release_avx512
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
# ARCH: x86-64-v4
# PLATFORM: amd64
# LIB: dpdk
# LIB_VERSION: "23.11"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
# - NAME: split72_release_with_debug_avx512
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
# ARCH: x86-64-v4
# PLATFORM: amd64
# LIB: dpdk
# LIB_VERSION: "23.11"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
# # --> split8
# # AMD AVX2
# - NAME: split8_release_avx2
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
# ARCH: x86-64-v3
# PLATFORM: amd64
# LIB: uhd
# LIB_VERSION: "4.6.0.0"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
# - NAME: split8_release_with_debug_avx2
# EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
# ARCH: x86-64-v3
# PLATFORM: amd64
# LIB: uhd
# LIB_VERSION: "4.6.0.0"
# DOCKERFILE: ./docker/Dockerfile
# CONTEXT: ./
env:
NAME: srsran_${{ matrix.NAME }}
environment: dockerhub
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Determine tags based on branch
id: tags
run: |
BRANCH_NAME="${GITHUB_REF#refs/heads/}"
DATE_TAG="${GITHUB_SHA:0:10}-$(date +'%Y-%m-%d')"
RELEASE_NAME="${{ github.event.release.name }}"
if [ -n "$RELEASE_NAME" ]; then
tags="${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:${RELEASE_NAME}"
else
if [ "$BRANCH_NAME" == "main" ]; then
tags="${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:latest"
elif [ "$BRANCH_NAME" == "test" ]; then
tags="${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:next"
fi
fi
echo "tags=$tags" >> $GITHUB_OUTPUT
- name: Login to Docker Hub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
logout: true
ecr: false
- name: Build and push
uses: docker/build-push-action@v6
with:
push: false
tags: ${{ steps.tags.outputs.tags }}
file: ${{ matrix.DOCKERFILE }}
platforms: ${{ matrix.PLATFORM }}
context: ${{ matrix.CONTEXT }}
build-args: |
NAME="${{ env.NAME }}"
LIB=${{ matrix.LIB }}
LIB_VERSION=${{ matrix.LIB_VERSION }}
ARCH=${{ matrix.ARCH }}