Skip to content

Commit

Permalink
build docker
Browse files Browse the repository at this point in the history
  • Loading branch information
qarlosalberto committed Jul 3, 2024
1 parent 40b17b4 commit e071de2
Show file tree
Hide file tree
Showing 3 changed files with 167 additions and 27 deletions.
44 changes: 18 additions & 26 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
#
# Copyright 2013-2024 Software Radio Systems Limited
#
# By using this file, you agree to the terms and conditions set
# forth in the LICENSE file which can be found at the top level of
# the distribution.
#

name: C/C++ CI
on: push
jobs:
x86_ubuntu_build:
name: Build on x86
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-20.04]
compiler: [gcc, clang]
steps:
- uses: actions/checkout@v3
- name: Build srsRAN Project on x86 ${{ matrix.os }}
run: |
sudo apt update
sudo apt install -y cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev ninja-build
mkdir build && cd build && cmake -DENABLE_UHD=False -GNinja .. && ninja && ctest
# name: C/C++ CI
# on: push
# jobs:
# x86_ubuntu_build:
# name: Build on x86
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-22.04, ubuntu-20.04]
# compiler: [gcc, clang]
# steps:
# - uses: actions/checkout@v3
# - name: Build srsRAN Project on x86 ${{ matrix.os }}
# run: |
# sudo apt update
# sudo apt install -y cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev ninja-build
# mkdir build && cd build && cmake -DENABLE_UHD=False -GNinja .. && ninja && ctest
148 changes: 148 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: Docker Builder
on:
push:
branches:
- main
- test
- other
release:
types: [published]

jobs:
docker:
runs-on: ubuntu-latest
strategy:
matrix:
include:
# --> metrics server
- NAME: ""
HUB: metrics-server
EXTRA_CMAKE_ARGS: ""
ARCH: ""
PLATFORM: amd64
LIB: ""
LIB_VERSION: ""
DOCKERFILE: ./docker/grafana/Dockerfile
CONTEXT: ./docker/grafana
# --> grafana
- NAME: ""
HUB: "grafana"
EXTRA_CMAKE_ARGS: ""
ARCH: ""
PLATFORM: amd64
LIB: ""
LIB_VERSION: ""
DOCKERFILE: ./docker/metrics_server/Dockerfile
CONTEXT: ./docker/metrics_server
# --> split72
# AMD AVX2
- NAME: "\split72_release_avx2"
HUB: "srsran-project"
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"
HUB: "srsran-project"
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"
HUB: "srsran-project"
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"
HUB: "srsran-project"
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"
HUB: "srsran-project"
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"
HUB: "srsran-project"
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:
PREFIX: softwareradiosystems/${{ matrix.HUB }}:${{ 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.PREFIX }}-${DATE_TAG},${{ env.PREFIX }}-${RELEASE_NAME}"
else
if [ "$BRANCH_NAME" == "main" ]; then
tags="${{ env.PREFIX }}-${DATE_TAG},${{ env.PREFIX }}-latest"
elif [ "$BRANCH_NAME" == "other" ]; then
tags="${{ env.PREFIX }}-${DATE_TAG},${{ env.PREFIX }}-next"
fi
fi
echo "tags=$tags"
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: true
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 }}
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ ARG NUM_CORES=""
##################
# Stage 1: Build #
##################
FROM ubuntu:$OS_VERSION as builder
FROM ubuntu:$OS_VERSION AS builder

# Adding the complete repo to the context, in /src folder
ADD . /src
Expand Down

0 comments on commit e071de2

Please sign in to comment.