Skip to content

Commit

Permalink
build docker
Browse files Browse the repository at this point in the history
  • Loading branch information
qarlosalberto committed Jun 25, 2024
1 parent 40b17b4 commit 70f4763
Show file tree
Hide file tree
Showing 2 changed files with 163 additions and 26 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
145 changes: 145 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Docker Build
on:
push:
branches:
- main
- test
- release
- build_docker

jobs:
docker:
runs-on: ubuntu-latest
strategy:
matrix:
include:
# --> split72
# AMD AVX2
- SUFFIX: release_avx2
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
ARCH: x86-64-v3
TAG: amd64-avx2
PLATFORM: amd64
LIB: dpdk
LIB_VERSION: "23.11"
- SUFFIX: release_with_debug_avx2
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
ARCH: x86-64-v3
TAG: amd64-avx2
PLATFORM: amd64
LIB: dpdk
LIB_VERSION: "23.11"
# AMD AVX512
- SUFFIX: release_avx512
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
ARCH: x86-64-v4
TAG: amd64-avx2-avx512
PLATFORM: amd64
LIB: dpdk
LIB_VERSION: "23.11"
- SUFFIX: release_with_debug_avx512
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
ARCH: x86-64-v4
TAG: amd64-avx2-avx512
PLATFORM: amd64
LIB: dpdk
LIB_VERSION: "23.11"
# ARM
- SUFFIX: release_arm
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
ARCH: armv8.2-a+crypto+fp16+dotprod
TAG: arm64
PLATFORM: arm64
LIB: dpdk
LIB_VERSION: "23.11"
- SUFFIX: release_with_debug_arm
SPLIT: "split72"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
ARCH: armv8.2-a+crypto+fp16+dotprod
TAG: arm64
PLATFORM: arm64
LIB: dpdk
LIB_VERSION: "23.11"
# --> split8
# AMD AVX2
- SUFFIX: release_avx2
SPLIT: "split8"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
ARCH: x86-64-v3
TAG: amd64-avx2
PLATFORM: amd64
LIB: uhd
LIB_VERSION: "4.6.0.0"
- SUFFIX: release_with_debug_avx2
SPLIT: "split8"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
ARCH: x86-64-v3
TAG: amd64-avx2
PLATFORM: amd64
LIB: uhd
LIB_VERSION: "4.6.0.0"
# ARM
- SUFFIX: release_arm
SPLIT: "split8"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off
ARCH: armv8.2-a+crypto+fp16+dotprod
TAG: arm64
PLATFORM: arm64
LIB: uhd
LIB_VERSION: "4.6.0.0"
- SUFFIX: release_with_debug_arm
SPLIT: "split8"
EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off -DFORCE_DEBUG_INFO=On
ARCH: armv8.2-a+crypto+fp16+dotprod
TAG: arm64
PLATFORM: arm64
LIB: uhd
LIB_VERSION: "4.6.0.0"

env:
NAME: srsran_${{ matrix.SPLIT }}_${{ matrix.SUFFIX }}
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')"
if [ "$BRANCH_NAME" == "main" ]; then
echo "::set-output name=tags::${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:latest"
elif [ "$BRANCH_NAME" == "test" ]; then
echo "::set-output name=tags:${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:next"
elif [ "$BRANCH_NAME" == "release" ]; then
echo "::set-output name=tags::${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:${BRANCH_NAME}"
elif [ "$BRANCH_NAME" == "build_docker" ]; then
echo "::set-output name=tags::${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:${BRANCH_NAME}"
fi
- name: Check tags
run: echo "${{ steps.tags.outputs.tags }}"

- name: Build and push
uses: docker/build-push-action@v6
with:
push: false
tags: ${{ steps.tags.outputs.tags }}
file: ./docker/Dockerfile
platforms: ${{ matrix.PLATFORM }}
build-args: |
NAME="srsran_${SPLIT}_${SUFFIX}"
LIB=${{ matrix.LIB }}
LIB_VERSION=${{ matrix.LIB_VERSION }}
ARCH=${{ matrix.ARCH }}

0 comments on commit 70f4763

Please sign in to comment.