From 2c85b91c4455960d075da47611d940820c97385d Mon Sep 17 00:00:00 2001 From: qarlosalberto Date: Mon, 24 Jun 2024 13:02:29 +0200 Subject: [PATCH] build docker --- .github/workflows/ccpp.yml | 44 +++++------- .github/workflows/docker.yml | 131 +++++++++++++++++++++++++++++++++++ docker/Dockerfile | 2 +- 3 files changed, 150 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 33fc24c6f1..407457e783 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -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 \ No newline at end of file +# 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 \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000000..4de7956884 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,131 @@ +name: Docker Build +on: + push: + branches: + - main + - test + - release + - build_docker + - sample + release: + types: [published] + +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" + # --> 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" + + 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')" + 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" + elif [ "$BRANCH_NAME" == "build_docker" ]; then + tags="${{ env.NAME }}:${DATE_TAG},${{ env.NAME }}:${BRANCH_NAME}" + fi + fi + echo "tags=$tags" >> $GITHUB_OUTPUT + + - name: Check tags + run: echo "${{ steps.tags.outputs.tags }}" + + - + name: Login to Docker Hub + uses: docker/login-action@v3.2.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + # 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: ./docker/Dockerfile + # platforms: ${{ matrix.PLATFORM }} + # build-args: | + # NAME="srsran_${SPLIT}_${SUFFIX}" + # LIB=${{ matrix.LIB }} + # LIB_VERSION=${{ matrix.LIB_VERSION }} + # ARCH=${{ matrix.ARCH }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 876db00e4f..1a21e366d1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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