diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5310885ae..d8c6a4294 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: ########################################################################## - name: login server | Build `test` image run: | - docker build --target debug -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/ + docker build --target test -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/ docker save "gradido/login_server:test" > /tmp/login_server.tar - name: Upload Artifact uses: actions/upload-artifact@v2 @@ -234,7 +234,7 @@ jobs: - name: Download Docker Image (Login-Server) uses: actions/download-artifact@v2 with: - name: docker-loginserver-test + name: docker-login-server-test path: /tmp - name: Load Docker Image run: docker load < /tmp/loginserver.tar @@ -243,7 +243,11 @@ jobs: ########################################################################## - name: Login-Server | Unit tests run: | - docker run -v ~/coverage:/app/coverage --rm gradido/frontend:test yarn run test + docker run \ + -v ~/coverage:/code/build/coverage_html \ + -v ./configs/login_server:/code/build \ + --rm gradido/login_server:test \ + "make -C /code/build -j$(nproc) coverage_html" cp -r ~/coverage ./coverage #test: diff --git a/configs/login_server/Gradido_LoginServer_Test.properties b/configs/login_server/Gradido_LoginServer_Test.properties new file mode 100644 index 000000000..8a269694a --- /dev/null +++ b/configs/login_server/Gradido_LoginServer_Test.properties @@ -0,0 +1,57 @@ +HTTPServer.port = 1200 +JSONServer.port = 1201 +Gradido.group_id = 1 + +crypto.server_admin_public = f909a866baec97c5460b8d7a93b72d3d4d20cc45d9f15d78bd83944eb9286b7f +crypto.server_key = a51ef8ac7ef1abf162fb7a65261acd7a +# TODO auto-generate in docker build step +crypto.app_secret = 21ffbbc616fe + +# Server admin Passphrase +# nerve execute merit pool talk hockey basic win cargo spin disagree ethics swear price purchase say clutch decrease slow half forest reform cheese able +# + +phpServer.url = http://localhost/ +phpServer.host = nginx + +loginServer.path = http://localhost/account +loginServer.default_locale = de +loginServer.db.host = mariadb +loginServer.db.name = gradido_login_test +loginServer.db.user = root +loginServer.db.password = +loginServer.db.port = 3306 + +frontend.checkEmailPath = http://localhost/reset + +email.disable = true + +#email.username = +#email.sender = +#email.admin_receiver = +#email.password = +#email.smtp.url = +#email.smtp.port = + +# binary is default, for debugging also json is possible +#hedera.consensus.message_format = json +# TESTNET or MAINNET, TESTNET is default +hedera.nettype = TESTNET + +# server setup types: test, staging or production +ServerSetupType=test +dev.default_group = docker + + +# Session timeout in minutes +# +session.timeout = 15 + +# Disabling security features for faster develop and testing +unsecure.allow_passwort_via_json_request = 1 +unsecure.allow_auto_sign_transactions = 1 +unsecure.allow_cors_all = 1 +# default disable, passwords must contain a number, a lower character, a high character, special character, and be at least 8 characters long + +unsecure.allow_all_passwords = 1 + diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib index 9f1422630..267760282 100644 --- a/login_server/CMakeLists.txt.lib +++ b/login_server/CMakeLists.txt.lib @@ -219,22 +219,22 @@ set(EXCLUDE_FOR_HTML_COV "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*" "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*" ) -setup_target_for_coverage_gcovr_html( - NAME coverage_html - EXECUTABLE Gradido_LoginServer_Test - EXCLUDE ${EXCLUDE_FOR_HTML_COV} +#setup_target_for_coverage_gcovr_html( +# NAME coverage_html +# EXECUTABLE Gradido_LoginServer_Test +# EXCLUDE ${EXCLUDE_FOR_HTML_COV} #DEPENDENCIES lib/libmariadb.so.3 -) -#set(EXCLUDE_FOR_COV +#) +set(EXCLUDE_FOR_COV #${EXCLUDE_FOR_HTML_COV} #"/usr/include/*" -#) -#setup_target_for_coverage_lcov( - # NAME coverage - # EXECUTABLE Gradido_LoginServer_Test - #EXCLUDE "${EXCLUDE_FOR_COV}" - #DEPENDENCIES lib/libmariadb.so.3 -#) +) +setup_target_for_coverage_lcov( + NAME coverage + EXECUTABLE Gradido_LoginServer_Test + EXCLUDE "${EXCLUDE_FOR_COV}" + DEPENDENCIES lib/libmariadb.so.3 +) endif() #_TEST_BUILD diff --git a/login_server/Dockerfile b/login_server/Dockerfile index c35eb63f1..3abd1c1b2 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -8,20 +8,19 @@ ENV DOCKER_WORKDIR="/code" WORKDIR ${DOCKER_WORKDIR} COPY ./CMakeLists.txt.lib ./CMakeLists.txt +RUN ln -s /usr/local/googletest ./googletest COPY ./src ./src COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake COPY ./dependencies/cmake-modules ./dependencies/cmake-modules COPY ./dependencies/spirit-po ./dependencies/spirit-po COPY ./dependencies/tinf ./dependencies/tinf COPY ./scripts ./scripts -RUN cp -r /usr/local/googletest ./ -RUN apk add --update --no-cache gcovr RUN mkdir build && \ cd build && \ cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j$(nproc) Gradido_LoginServer Gradido_LoginServer_Test + make -j$(nproc) Gradido_LoginServer RUN cd scripts && \ chmod +x compile_pot.sh && \ @@ -30,6 +29,22 @@ RUN cd scripts && \ RUN chmod +x build/bin/Gradido_LoginServer ENTRYPOINT ["build/bin/Gradido_LoginServer"] +######################################################################################################### +# Build test +######################################################################################################### +FROM debug as test + +ENV DOCKER_WORKDIR="/code" +WORKDIR ${DOCKER_WORKDIR} + + +RUN mkdir build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Debug .. && \ + make -j$(nproc) Gradido_LoginServer_Test + +RUN chmod +x build/bin/Gradido_LoginServer_Test +ENTRYPOINT [ "make -C build -j$(nproc) coverage_html" ] ######################################################################################################### # Build release diff --git a/login_server/Dockerfile.alpine-debug b/login_server/Dockerfile.alpine-debug index 948d434d1..b9a5b14d0 100644 --- a/login_server/Dockerfile.alpine-debug +++ b/login_server/Dockerfile.alpine-debug @@ -9,6 +9,7 @@ WORKDIR ${DOCKER_WORKDIR} COPY ./CMakeLists.txt.lib ./CMakeLists.txt COPY ./scripts ./scripts +COPY ./cmake ./cmake CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/Dockerfile.dependencies-alpine index 0484db704..6ac27d441 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies-alpine +++ b/login_server/Dockerfiles/Dockerfile.dependencies-alpine @@ -2,8 +2,8 @@ ##### BUILD-ENV ##### FROM alpine:3.13.5 as alpine-build -RUN apk add --update --no-cache icu-dev -RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libintl gettext-dev boost-dev libsodium-dev +RUN apk add --update --no-cache icu-dev +RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libintl gettext-dev boost-dev libsodium-dev ##### CMAKE ##### @@ -15,6 +15,15 @@ RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ make -j$(nproc) && \ make install +##### lcov ##### +FROM alpine-build as alpine-lcov + +RUN apk add --no-cache bash perl + +RUN git clone https://github.com/linux-test-project/lcov.git --branch=v1.15 && \ + cd lcov && \ + make install + ######### BUILD grpc ############## FROM alpine-gxx-cmake as alpine-gxx-grpc @@ -70,6 +79,9 @@ COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/sh COPY --from=alpine-gxx-grpc /usr/local /usr/local COPY --from=alpine-gxx-grpc /grpc/third_party/googletest /usr/local/googletest +# copy from lcov +COPY --from=alpine-lcov /usr/local/bin /usr/local/bin +COPY --from=alpine-lcov /usr/local/etc/lcovrc /usr/local/etc/lcovrc # COPY from poco COPY --from=alpine-gxx-poco /usr/local /usr/local diff --git a/login_server/dependencies/poco b/login_server/dependencies/poco index 3fc3e5f5b..b95393dcc 160000 --- a/login_server/dependencies/poco +++ b/login_server/dependencies/poco @@ -1 +1 @@ -Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 +Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116 diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index 456f334c7..656e9a090 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -38,7 +38,7 @@ void runMysql(std::string sqlQuery) int load() { // init server config, init seed array - + std::clog << "[Gradido_LoginServer_Test::load]" << std::endl; Poco::AutoPtr test_config(new Poco::Util::LayeredConfiguration); try { auto cfg = new Poco::Util::PropertyFileConfiguration("Gradido_LoginServer_Test.properties");