From da154d0c2166323360a3cd7cd9f6aebccc78dfc7 Mon Sep 17 00:00:00 2001 From: Dmitry Rogozhkin Date: Tue, 8 Feb 2022 14:39:50 -0800 Subject: [PATCH] ci: switch to reusable templates Signed-off-by: Dmitry Rogozhkin --- .github/workflows/clang-ubuntu.yml | 87 +++++++++++ .github/workflows/gcc-ubuntu.yml | 76 +++++++++ .github/workflows/ubuntu.yml | 241 +++-------------------------- 3 files changed, 184 insertions(+), 220 deletions(-) create mode 100644 .github/workflows/clang-ubuntu.yml create mode 100644 .github/workflows/gcc-ubuntu.yml diff --git a/.github/workflows/clang-ubuntu.yml b/.github/workflows/clang-ubuntu.yml new file mode 100644 index 0000000000..f11a950554 --- /dev/null +++ b/.github/workflows/clang-ubuntu.yml @@ -0,0 +1,87 @@ +name: clang-ubuntu + +on: + workflow_call: + inputs: + on: + description: 'Which runner to use?' + type: string + required: true + clang: + description: 'Which clang compiler to use?' + type: string + required: true + cmake-flags: + description: 'And additional cmake flags?' + type: string + required: true + +env: + CFLAGS: -O2 -Wformat -Wformat-security -Wall -Werror -D_FORTIFY_SOURCE=2 -fstack-protector-strong + +jobs: + build: + runs-on: ${{inputs.on}} + env: + CC: /usr/bin/clang-${{inputs.clang}} + CXX: /usr/bin/clang++-${{inputs.clang}} + ASM: /usr/bin/clang-${{inputs.clang}} + steps: + - name: checkout libmfx + uses: actions/checkout@v2 + with: + path: libmfx + - name: checkout libva + uses: actions/checkout@v2 + with: + repository: intel/libva + path: libva + - name: install toolchain + run: | + if [[ -e $CC && -e $CXX ]]; then \ + echo "clang-${{inputs.clang}} already presents in the image"; \ + else \ + echo "clang-${{inputs.clang}} missed in the image, installing from llvm"; \ + echo "deb [trusted=yes] http://apt.llvm.org/focal/ llvm-toolchain-focal-${{inputs.clang}} main" | sudo tee -a /etc/apt/sources.list; \ + sudo apt-get update; \ + sudo apt-get install -y --no-install-recommends clang-${{inputs.clang}}; \ + fi + - name: install prerequisites + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + cmake \ + libdrm-dev \ + libegl1-mesa-dev \ + libgl1-mesa-dev \ + libx11-dev \ + libx11-xcb-dev \ + libxcb-dri3-dev \ + libxcb-present-dev \ + libxext-dev \ + libxfixes-dev \ + libwayland-dev \ + ocl-icd-opencl-dev \ + opencl-clhpp-headers \ + make + - name: print tools versions + run: | + cmake --version + $CC --version + $CXX --version + - name: build libva + run: | + cd libva + ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu + make -j$(nproc) + sudo make install + - name: build libmfx + run: | + cd libmfx + mkdir build && cd build + echo "inputs.cmake-flags: ${{inputs.cmake-flags}}" + cmake ${{inputs.cmake-flags}} -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. + make -j$(nproc) + make test + sudo make install + diff --git a/.github/workflows/gcc-ubuntu.yml b/.github/workflows/gcc-ubuntu.yml new file mode 100644 index 0000000000..2978032597 --- /dev/null +++ b/.github/workflows/gcc-ubuntu.yml @@ -0,0 +1,76 @@ +name: gcc-ubuntu + +on: + workflow_call: + inputs: + on: + description: 'Which runner to use?' + type: string + required: true + gcc: + description: 'Which gcc compiler to use?' + type: string + required: true + cmake-flags: + description: 'And additional cmake flags?' + type: string + required: true + +env: + CFLAGS: -O2 -Wformat -Wformat-security -Wall -Werror -D_FORTIFY_SOURCE=2 -fstack-protector-strong + +jobs: + build: + runs-on: ${{inputs.on}} + env: + CC: /usr/bin/gcc-${{inputs.gcc}} + CXX: /usr/bin/g++-${{inputs.gcc}} + ASM: /usr/bin/gcc-${{inputs.gcc}} + steps: + - name: checkout libmfx + uses: actions/checkout@v2 + with: + path: libmfx + - name: checkout libva + uses: actions/checkout@v2 + with: + repository: intel/libva + path: libva + - name: install prerequisites + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + cmake \ + libdrm-dev \ + libegl1-mesa-dev \ + libgl1-mesa-dev \ + libx11-dev \ + libx11-xcb-dev \ + libxcb-dri3-dev \ + libxcb-present-dev \ + libxext-dev \ + libxfixes-dev \ + libwayland-dev \ + ocl-icd-opencl-dev \ + opencl-clhpp-headers \ + make + - name: print tools versions + run: | + cmake --version + $CC --version + $CXX --version + - name: build libva + run: | + cd libva + ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu + make -j$(nproc) + sudo make install + - name: build libmfx + run: | + cd libmfx + mkdir build && cd build + echo "inputs.cmake-flags: ${{inputs.cmake-flags}}" + cmake ${{inputs.cmake-flags}} -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. + make -j$(nproc) + sudo make install + diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index e3413c803f..7821a594c4 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -2,231 +2,32 @@ name: ubuntu-20.04 on: [ push, pull_request ] -env: - CFLAGS: -O2 -Wformat -Wformat-security -Wall -Werror -D_FORTIFY_SOURCE=2 -fstack-protector-strong - jobs: clang13-api-latest: - runs-on: ubuntu-20.04 - env: - CC: /usr/bin/clang-13 - CXX: /usr/bin/clang++-13 - ASM: /usr/bin/clang-13 - steps: - - name: checkout libmfx - uses: actions/checkout@v2 - with: - path: libmfx - - name: checkout libva - uses: actions/checkout@v2 - with: - repository: intel/libva - path: libva - - name: install toolchain - run: | - if [[ -e $CC && -e $CXX ]]; then \ - echo "clang-13 already presents in the image"; \ - else \ - echo "clang-13 missed in the image, installing from llvm"; \ - echo "deb [trusted=yes] http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" | sudo tee -a /etc/apt/sources.list; \ - sudo apt-get update; \ - sudo apt-get install -y --no-install-recommends clang-13; \ - fi - - name: install prerequisites - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - cmake \ - libdrm-dev \ - libegl1-mesa-dev \ - libgl1-mesa-dev \ - libx11-dev \ - libx11-xcb-dev \ - libxcb-dri3-dev \ - libxcb-present-dev \ - libxext-dev \ - libxfixes-dev \ - libwayland-dev \ - ocl-icd-opencl-dev \ - opencl-clhpp-headers \ - make - - name: print tools versions - run: | - cmake --version - $CC --version - $CXX --version - - name: build libva - run: | - cd libva - ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu - make -j$(nproc) - sudo make install - - name: build libmfx - run: | - cd libmfx - mkdir build && cd build - cmake -DAPI=latest -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. - make -j$(nproc) - make test - sudo make install + uses: ./.github/workflows/clang-ubuntu.yml + with: + on: ubuntu-20.04 + clang: 13 + cmake-flags: -DAPI=latest -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF clang12: - runs-on: ubuntu-20.04 - env: - CC: /usr/bin/clang-10 - CXX: /usr/bin/clang++-10 - ASM: /usr/bin/clang-10 - steps: - - name: checkout libmfx - uses: actions/checkout@v2 - with: - path: libmfx - - name: checkout libva - uses: actions/checkout@v2 - with: - repository: intel/libva - path: libva - - name: install prerequisites - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - cmake \ - libdrm-dev \ - libegl1-mesa-dev \ - libgl1-mesa-dev \ - libx11-dev \ - libx11-xcb-dev \ - libxcb-dri3-dev \ - libxcb-present-dev \ - libxext-dev \ - libxfixes-dev \ - libwayland-dev \ - ocl-icd-opencl-dev \ - opencl-clhpp-headers \ - make - - name: print tools versions - run: | - cmake --version - $CC --version - $CXX --version - - name: build libva - run: | - cd libva - ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu - make -j$(nproc) - sudo make install - - name: build libmfx - run: | - cd libmfx - mkdir build && cd build - cmake -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. - make -j$(nproc) - make test - sudo make install + uses: ./.github/workflows/clang-ubuntu.yml + with: + on: ubuntu-20.04 + clang: 12 + cmake-flags: -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF gcc10: - runs-on: ubuntu-20.04 - env: - CC: /usr/bin/gcc-10 - CXX: /usr/bin/g++-10 - ASM: /usr/bin/gcc-10 - steps: - - name: checkout libmfx - uses: actions/checkout@v2 - with: - path: libmfx - - name: checkout libva - uses: actions/checkout@v2 - with: - repository: intel/libva - path: libva - - name: install prerequisites - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - cmake \ - libdrm-dev \ - libegl1-mesa-dev \ - libgl1-mesa-dev \ - libx11-dev \ - libx11-xcb-dev \ - libxcb-dri3-dev \ - libxcb-present-dev \ - libxext-dev \ - libxfixes-dev \ - libwayland-dev \ - ocl-icd-opencl-dev \ - opencl-clhpp-headers \ - make - - name: print tools versions - run: | - cmake --version - $CC --version - $CXX --version - - name: build libva - run: | - cd libva - ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu - make -j$(nproc) - sudo make install - - name: build libmfx - run: | - cd libmfx - mkdir build && cd build - cmake -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. - make -j$(nproc) - make test - sudo make install + uses: ./.github/workflows/gcc-ubuntu.yml + with: + on: ubuntu-20.04 + gcc: 10 + cmake-flags: -DBUILD_ALL=ON -DENABLE_ALL=ON -DENABLE_ITT=OFF .. gcc10-fastboot: - runs-on: ubuntu-20.04 - env: - CC: /usr/bin/gcc-10 - CXX: /usr/bin/g++-10 - ASM: /usr/bin/gcc-10 - steps: - - name: checkout libmfx - uses: actions/checkout@v2 - with: - path: libmfx - - name: checkout libva - uses: actions/checkout@v2 - with: - repository: intel/libva - path: libva - - name: install prerequisites - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - cmake \ - libdrm-dev \ - libegl1-mesa-dev \ - libgl1-mesa-dev \ - libx11-dev \ - libx11-xcb-dev \ - libxcb-dri3-dev \ - libxcb-present-dev \ - libxext-dev \ - libxfixes-dev \ - libwayland-dev \ - ocl-icd-opencl-dev \ - opencl-clhpp-headers \ - make - - name: print tools versions - run: | - cmake --version - $CC --version - $CXX --version - - name: build libva - run: | - cd libva - ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu - make -j$(nproc) - sudo make install - - name: build libmfx - run: | - cd libmfx - mkdir build && cd build - cmake -DMFX_CONFIG_FILE=$(pwd)/../builder/profiles/fastboot.cmake -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CFLAGS" .. - make -j$(nproc) - sudo make install + uses: ./.github/workflows/gcc-ubuntu.yml + with: + on: ubuntu-20.04 + gcc: 10 + cmake-flags: -DMFX_CONFIG_FILE=$(pwd)/../builder/profiles/fastboot.cmake +