Skip to content

Commit

Permalink
Feat/Fix (#31): Re-add ci-pipline within the new data-structure of th…
Browse files Browse the repository at this point in the history
…e repo
  • Loading branch information
kitsudaiki committed Feb 8, 2023
1 parent f415f42 commit b5636ee
Show file tree
Hide file tree
Showing 7 changed files with 198 additions and 15 deletions.
158 changes: 157 additions & 1 deletion .github/workflows/build_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
build:
runs-on: ubuntu-latest
container:
image: registry.gitlab.com/kitsudaiki/kitsunemimi-ci-docker-images/opencl-tests:1.2.0
image: kitsudaiki/ci-build:0.1.0
name: build-job
steps:
- name: "Checkout repository"
Expand All @@ -25,3 +25,159 @@ jobs:
run: |
cd ${GITHUB_REPOSITORY#*/}
./build.sh test
- name: "Copy files"
run: |
mkdir /build_result
cd ${GITHUB_REPOSITORY#*/}
# Workaround, because I hadn'd found a way to define a build-target directory when using plain qmake and make
# and keeping all files in the directory is horrible slow in the articats
find ./src/ -type f -name "*.cpp" -exec rm {} \;
find ./src/ -type f -name "*.h" -exec rm {} \;
find ./src/ -type f -name "*.o" -exec rm {} \;
find ./src/ -type f -name "*.a" -exec rm {} \;
cp -r src/* /build_result/
- name: Create artifact
uses: actions/upload-artifact@v3
with:
name: result
path: /build_result

unit_tests:
needs: build
runs-on: ubuntu-latest
container:
image: kitsudaiki/hanami_ai_base:develop
name: "Unit-Tests"
steps:
- name: Get artifact
uses: actions/download-artifact@v3
with:
name: result
path: /build_result
- name: "Check target-directory"
run: ls -l /build_result
- name: "Run test: libKitsunemimiCommon"
run: |
chmod +x /build_result/libraries/libKitsunemimiCommon/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiCommon/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiJson"
run: |
chmod +x /build_result/libraries/libKitsunemimiJson/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiJson/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiConfig"
run: |
chmod +x /build_result/libraries/libKitsunemimiConfig/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiConfig/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiArgs"
run: |
chmod +x /build_result/libraries/libKitsunemimiArgs/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiArgs/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiCrypto"
run: |
chmod +x /build_result/libraries/libKitsunemimiCrypto/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiCrypto/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiIni"
run: |
chmod +x /build_result/libraries/libKitsunemimiIni/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiIni/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiJwt"
run: |
chmod +x /build_result/libraries/libKitsunemimiJwt/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiJwt/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiSqlite"
run: |
chmod +x /build_result/libraries/libKitsunemimiSqlite/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiSqlite/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiHanamiClusterParser"
run: |
chmod +x /build_result/libraries/libKitsunemimiHanamiClusterParser/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiHanamiClusterParser/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiHanamiSegmentParser"
run: |
chmod +x /build_result/libraries/libKitsunemimiHanamiSegmentParser/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiHanamiSegmentParser/tests/unit_tests/unit_tests
- name: "Run test: libKitsunemimiHanamiPolicies"
run: |
chmod +x /build_result/libraries/libKitsunemimiHanamiPolicies/tests/unit_tests/unit_tests
/build_result/libraries/libKitsunemimiHanamiPolicies/tests/unit_tests/unit_tests
memory_leak_tests:
needs: build
runs-on: ubuntu-latest
container:
image: kitsudaiki/hanami_ai_base:develop
name: "Memory-Leak-Tests"
steps:
- name: Get artifact
uses: actions/download-artifact@v3
with:
name: result
path: /build_result
- name: "Check target-directory"
run: ls -l /build_result
- name: "Run test: libKitsunemimiCommon"
run: |
chmod +x /build_result/libraries/libKitsunemimiCommon/tests/memory_leak_tests/memory_leak_tests
/build_result/libraries/libKitsunemimiCommon/tests/memory_leak_tests/memory_leak_tests
- name: "Run test: libKitsunemimiJson"
run: |
chmod +x /build_result/libraries/libKitsunemimiJson/tests/memory_leak_tests/memory_leak_tests
/build_result/libraries/libKitsunemimiJson/tests/memory_leak_tests/memory_leak_tests
- name: "Run test: libKitsunemimiNetwork"
run: |
chmod +x /build_result/libraries/libKitsunemimiNetwork/tests/memory_leak_tests/memory_leak_tests
/build_result/libraries/libKitsunemimiNetwork/tests/memory_leak_tests/memory_leak_tests
- name: "Run test: libKitsunemimiHanamiClusterParser"
run: |
chmod +x /build_result/libraries/libKitsunemimiHanamiClusterParser/tests/memory_leak_tests/memory_leak_tests
/build_result/libraries/libKitsunemimiHanamiClusterParser/tests/memory_leak_tests/memory_leak_tests
functional_tests:
needs: build
runs-on: ubuntu-latest
container:
image: kitsudaiki/hanami_ai_base:develop
name: "Functional-Tests"
steps:
- name: Get artifact
uses: actions/download-artifact@v3
with:
name: result
path: /build_result
- name: "Check target-directory"
run: ls -l /build_result
- name: "Run test: libKitsunemimiConfig"
run: |
chmod +x /build_result/libraries/libKitsunemimiConfig/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiConfig/tests/functional_tests/functional_tests
- name: "Run test: libKitsunemimiNetwork"
run: |
chmod +x /build_result/libraries/libKitsunemimiNetwork/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiNetwork/tests/functional_tests/functional_tests
- name: "Run test: libKitsunemimiObj"
run: |
chmod +x /build_result/libraries/libKitsunemimiObj/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiObj/tests/functional_tests/functional_tests
- name: "Run test: libKitsunemimiSakuraDatabase"
run: |
chmod +x /build_result/libraries/libKitsunemimiSakuraDatabase/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiSakuraDatabase/tests/functional_tests/functional_tests
- name: "Run test: libKitsunemimiSakuraNetwork"
run: |
chmod +x /build_result/libraries/libKitsunemimiSakuraNetwork/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiSakuraNetwork/tests/functional_tests/functional_tests
- name: "Run test: libKitsunemimiHanamiNetwork"
run: |
chmod +x /build_result/libraries/libKitsunemimiHanamiNetwork/tests/functional_tests/functional_tests
/build_result/libraries/libKitsunemimiHanamiNetwork/tests/functional_tests/functional_tests
cleanup:
needs: [ unit_tests, memory_leak_tests, functional_tests ]
runs-on: ubuntu-latest
name: cleanup-job
steps:
- name: "Delete artifacts"
uses: geekyeggo/delete-artifact@v2
with:
name: result
26 changes: 26 additions & 0 deletions assets/ci_docker_images/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from ubuntu:22.04

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
apt-get upgrade -y && \
apt-get update && \
apt-get install -y \
gcc \
g++ \
make \
qt5-qmake \
bison \
flex \
xxd \
opencl-headers \
ocl-icd-opencl-dev \
libssl-dev \
libcrypto++-dev \
libboost1.74-dev \
uuid-dev \
libsqlite3-dev \
protobuf-compiler \
nano \
git \
ssh
8 changes: 8 additions & 0 deletions assets/ci_docker_images/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Docker-image for the build-tests within the ci-pipeline

Build:

```
docker build -t kitsudaiki/ci-build:0.1.0 .
docker push kitsudaiki/ci-build:0.1.0
```
9 changes: 5 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
PARENT_DIR="$(dirname "$DIR")"

# build Hanami-AI library with qmake
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake "$PARENT_DIR/Hanami-AI/Hanami-AI.pro" -spec linux-g++ "CONFIG += optimize_full staticlib"
if [ $1 = "test" ]; then
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake "$PARENT_DIR/Hanami-AI/Hanami-AI.pro" -spec linux-g++ "CONFIG += optimize_full staticlib run_tests"
else
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake "$PARENT_DIR/Hanami-AI/Hanami-AI.pro" -spec linux-g++ "CONFIG += optimize_full staticlib"
fi

# IMPORTNANT: at the moment it has to be build with only 1 thread, because the parser-generation with bison and flex
# has problems in a parallel build-process (see issue #30)
/usr/bin/make -j8

#-----------------------------------------------------------------------------------------------------------------
Expand Down
5 changes: 0 additions & 5 deletions src/libraries/libAzukiHeart/libAzukiHeart.pro
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,4 @@ CONFIG += ordered

SUBDIRS = src

run_tests {
SUBDIRS += tests

tests.depends = src
}

5 changes: 0 additions & 5 deletions src/libraries/libMisakiGuard/libMisakiGuard.pro
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,4 @@ CONFIG += ordered

SUBDIRS = src

run_tests {
SUBDIRS += tests

tests.depends = src
}

2 changes: 2 additions & 0 deletions src/libraries/libraries.pro
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ SUBDIRS += libKitsunemimiConfig
SUBDIRS += libKitsunemimiCpu
SUBDIRS += libKitsunemimiSqlite
SUBDIRS += libKitsunemimiOpencl
SUBDIRS += libKitsunemimiObj
SUBDIRS += libKitsunemimiSakuraHardware
SUBDIRS += libKitsunemimiSakuraDatabase
SUBDIRS += libKitsunemimiSakuraNetwork
Expand All @@ -38,6 +39,7 @@ libKitsunemimiConfig.depends = libKitsunemimiIni
libKitsunemimiCpu.depends = libKitsunemimiCommon
libKitsunemimiSqlite.depends = libKitsunemimiCommon
libKitsunemimiOpencl.depends = libKitsunemimiCommon
libKitsunemimiObj.depends = libKitsunemimiCommon
libKitsunemimiSakuraHardware.depends = libKitsunemimiCpu
libKitsunemimiSakuraDatabase.depends = libKitsunemimiSqlite
libKitsunemimiSakuraNetwork.depends = libKitsunemimiNetwork
Expand Down

0 comments on commit b5636ee

Please sign in to comment.