From 5a0039c7918edb9a91a4978b42c3618e95abaf84 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 | 67 ++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 26 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..d4be7af6f2 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,67 @@ +name: Docker Build +on: + push: + branches: + - main + - test + - release + - build_docker + +jobs: + docker: + runs-on: ubuntu-latest + strategy: + matrix: + include: + # --> split72 + # AMD AVX2 + - SPLIT: split72 + SUFFIX: release_avx2 + TAG: amd64-avx2 + PLATFORM: linux/amd64 + ARCH: x86-64-v3 + LIB: dpdk + LIB_VERSION: "23.11" + EXTRA_CMAKE_ARGS: -DAUTO_DETECT_ISA=Off + 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}-$(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 }}