Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 30 additions & 10 deletions .github/workflows/cmake-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ jobs:
shell: bash
run: |
echo "build-output-dir=build_${{ matrix.c_compiler }}" >> "$GITHUB_OUTPUT"
echo "KNP_IMAGE_VERSION=v2.0.${{ github.run_number }}" >> $GITHUB_ENV
echo "KNP_BUILD_IMAGE_NAME=${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:latest" >> $GITHUB_ENV
echo "KNP_SDK_IMAGE_NAME=${{ vars.DOCKERHUB_LOGIN }}/knp-sdk-image:${{ env.KNP_IMAGE_VERSION }}" >> $GITHUB_ENV

# Install support for non-x86 emulation in Docker via QEMU.
# Platforms: linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x,
Expand All @@ -83,40 +86,57 @@ jobs:
-S .

- name: Build
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP kasperskydh/knp-build-image cmake --build ${{ steps.strings.outputs.build-output-dir }} --parallel ${{ matrix.build_threads_count }}
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP ${{ KNP_BUILD_IMAGE_NAME }} cmake --build ${{ steps.strings.outputs.build-output-dir }} --parallel ${{ matrix.build_threads_count }}
timeout-minutes: 180

- name: C++ tests
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }}/knp/tests kasperskydh/knp-build-image ctest -V
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }}/knp/tests ${{ KNP_BUILD_IMAGE_NAME }} ctest -V
timeout-minutes: 180

# TODO: run before configure?
- name: Analyze C++ code with lizard
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP kasperskydh/knp-build-image ci/run_lizard.py
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP ${{ KNP_BUILD_IMAGE_NAME }} ci/run_lizard.py
continue-on-error: true

- name: Analyze Python code with PyLint
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP kasperskydh/knp-build-image ci/run_pylint.py ${{ steps.strings.outputs.build-output-dir }}/knp_python_framework/knp ${{ steps.strings.outputs.build-output-dir }}
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP ${{ KNP_BUILD_IMAGE_NAME }} ci/run_pylint.py ${{ steps.strings.outputs.build-output-dir }}/knp_python_framework/knp ${{ steps.strings.outputs.build-output-dir }}

- name: Analyze Python code with Bandit
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP kasperskydh/knp-build-image /usr/bin/bandit -r -lll -x ".*fixtures" /KNP/knp/python-framework ${{ steps.strings.outputs.build-output-dir }}/knp_python_framework/ -o ${{ steps.strings.outputs.build-output-dir }}/bandit.log
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP ${{ KNP_BUILD_IMAGE_NAME }} /usr/bin/bandit -r -lll -x ".*fixtures" /KNP/knp/python-framework ${{ steps.strings.outputs.build-output-dir }}/knp_python_framework/ -o ${{ steps.strings.outputs.build-output-dir }}/bandit.log

- name: Python tests
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }}/knp_python_framework kasperskydh/knp-build-image pytest
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }}/knp_python_framework ${{ KNP_BUILD_IMAGE_NAME }} pytest

- name: Create deb packages
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }} kasperskydh/knp-build-image cpack -G DEB
run: docker run --platform=linux/${{ matrix.arch }} --rm -v ${{ github.workspace }}:/KNP -w /KNP/${{ steps.strings.outputs.build-output-dir }} ${{ KNP_BUILD_IMAGE_NAME }} cpack -G DEB
timeout-minutes: 180

- name: Create SDK Docker image
if: matrix.c_compiler == 'gcc'
uses: docker/build-push-action@v6
with:
platforms: linux/${{ matrix.arch }}
context: "{{defaultContext}}:docker/sdk-image"
load: true
push: true
build-args: |
KNP_IMAGE_VERSION=${{ env.KNP_IMAGE_VERSION }}
KNP_PACKAGES_DIR=${{ steps.strings.outputs.build-output-dir }}/_packages/
tags: |
${{ vars.DOCKERHUB_LOGIN }}/knp-sdk-image:${{ env.KNP_IMAGE_VERSION }}
${{ vars.DOCKERHUB_LOGIN }}/knp-sdk-image:latest
timeout-minutes: 180
continue-on-error: false
- name: Upload deb packages
if: matrix.c_compiler == 'gcc'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: pkg-deb-${{ matrix.arch }}
path: ${{ steps.strings.outputs.build-output-dir }}/_packages/

- name: Upload Python wheel
if: matrix.c_compiler == 'gcc'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: pkg-python-${{ matrix.arch }}
path: ${{ steps.strings.outputs.build-output-dir }}/knp_python_framework/dist/knp-*.whl
Expand Down Expand Up @@ -178,7 +198,7 @@ jobs:
- name: Install OpenCV via vcpkg
if: matrix.c_compiler == 'cl'
run: vcpkg install opencv:x64-windows

- name: Configure CMake
env:
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/docker-build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set Images Version
run: echo "KNP_IMAGE_VERSION=v1.0.${{ github.run_number }}" >> $GITHUB_ENV
run: echo "KNP_IMAGE_VERSION=v2.0.${{ github.run_number }}" >> $GITHUB_ENV
- name: Set up Docker
uses: docker/setup-docker-action@v5
with:
Expand All @@ -46,7 +46,9 @@ jobs:
context: "{{defaultContext}}:docker/base-image"
load: true
push: true
tags: ${{ vars.DOCKERHUB_LOGIN }}/knp-base-image:${{ env.KNP_IMAGE_VERSION }}
tags: |
${{ vars.DOCKERHUB_LOGIN }}/knp-base-image:${{ env.KNP_IMAGE_VERSION }}
${{ vars.DOCKERHUB_LOGIN }}/knp-base-image:latest
build-args: KNP_IMAGE_VERSION=${{ env.KNP_IMAGE_VERSION }}
timeout-minutes: 180
continue-on-error: false
Expand All @@ -58,6 +60,8 @@ jobs:
load: true
push: true
build-args: KNP_IMAGE_VERSION=${{ env.KNP_IMAGE_VERSION }}
tags: ${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:${{ env.KNP_IMAGE_VERSION }}
tags: |
${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:${{ env.KNP_IMAGE_VERSION }}
${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:latest
timeout-minutes: 180
continue-on-error: false
6 changes: 6 additions & 0 deletions docker/sdk-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
# limitations under the License.

ARG KNP_IMAGE_VERSION=2.0.0
ARG KNP_PACKAGES_DIR
ARG TARGETPLATFORM
FROM kasperskydh/knp-base-image:${KNP_IMAGE_VERSION}

Expand All @@ -34,3 +35,8 @@ RUN \
&& chsh -s $(which zsh) \
&& sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" \
&& cd /knp

COPY NOTICE.txt .
COPY ${PACKAGES_DIR}/*.deb /knp

RUN DEBIAN_FRONTEND=noninteractive dpkg -i /knp/*.deb
Loading