From d824c69e198dadb11c62d7925b859d7a8dd7563d Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 12:40:07 +0200 Subject: [PATCH 01/11] First and ugly attempt at integrating sytest This uses the valkum/sytest-conduit docker image which was created for the old CI system. It therefore has 'weird' paths which I am not cleaning up until it at least ran in GitLab CI --- .gitlab-ci.yml | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92da543..cc6ec49 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ stages: - - test - build + - test - upload artifacts variables: @@ -34,6 +34,35 @@ test:cargo: - cargo test --workspace --verbose --locked - cargo clippy + +test:sytest: + stage: "test" + allow_failure: true + needs: + - "build:cargo:x86_64-unknown-linux-musl" + image: + name: "valkum/sytest-conduit:latest" + entrypoint: [""] + tags: ["docker"] + variables: + PLUGINS: "https://github.com/valkum/sytest_conduit/archive/master.tar.gz" + before_script: + - "mkdir -p /app" + - "cp ./x86_64-unknown-linux-musl /app/conduit" + - "chmod +x /app/conduit" + - "mkdir -p /src/tests/sytest" + - "cp -r tests/sytest /src/tests/sytest" + - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" + - "cd /" + script: + - "/bootstrap.sh conduit" + artifacts: + paths: + - "/logs/**/*.log" + - "/logs/**/*.log.*" + - "/logs/results.tap" + + # --------------------------------------------------------------------- # # Cargo: Compiling for different architectures # # --------------------------------------------------------------------- # @@ -97,6 +126,20 @@ build:cargo:aarch64-unknown-linux-gnu: TARGET_CC: "/usr/bin/aarch64-linux-gnu-gcc-8" TARGET_AR: "/usr/bin/aarch64-linux-gnu-gcc-ar-8" +build:cargo:x86_64-unknown-linux-musl: + extends: .build-cargo-shared-settings + image: "rust:alpine" + rules: + - if: '$CI_COMMIT_BRANCH' # Always run + variables: + TARGET: "x86_64-unknown-linux-musl" + before_script: + - 'echo "Building for target $TARGET"' + - 'mkdir -p cargohome && CARGOHOME="cargohome"' + - "cat /etc/*-release && rustc --version && cargo --version" # Print version info for debugging + - "rustup target add $TARGET" + - "apk add libc-dev" + # --------------------------------------------------------------------- # # Cargo: Compiling deb packages for different architectures # @@ -153,6 +196,7 @@ publish:package: - "build:cargo:x86_64-unknown-linux-gnu" - "build:cargo:armv7-unknown-linux-gnueabihf" - "build:cargo:aarch64-unknown-linux-gnu" + - "build:cargo:x86_64-unknown-linux-musl" - "build:cargo-deb:x86_64-unknown-linux-gnu" rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' @@ -165,6 +209,7 @@ publish:package: - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-x86_64-unknown-linux-gnu "${BASE_URL}/conduit-x86_64-unknown-linux-gnu"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-armv7-unknown-linux-gnueabihf "${BASE_URL}/conduit-armv7-unknown-linux-gnueabihf"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-aarch64-unknown-linux-gnu "${BASE_URL}/conduit-aarch64-unknown-linux-gnu"' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file x86_64-unknown-linux-musl" ${BASE_URL}/conduit-x86_64-unknown-linux-musl"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-x86_64-unknown-linux-gnu.deb "${BASE_URL}/conduit-x86_64-unknown-linux-gnu.deb"' From 6da26fce5b5a381cc0fc282cb0042f980b4d0103 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 12:56:02 +0200 Subject: [PATCH 02/11] Fix typo --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cc6ec49..cadbae4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,7 +48,7 @@ test:sytest: PLUGINS: "https://github.com/valkum/sytest_conduit/archive/master.tar.gz" before_script: - "mkdir -p /app" - - "cp ./x86_64-unknown-linux-musl /app/conduit" + - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - "mkdir -p /src/tests/sytest" - "cp -r tests/sytest /src/tests/sytest" @@ -209,7 +209,7 @@ publish:package: - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-x86_64-unknown-linux-gnu "${BASE_URL}/conduit-x86_64-unknown-linux-gnu"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-armv7-unknown-linux-gnueabihf "${BASE_URL}/conduit-armv7-unknown-linux-gnueabihf"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-aarch64-unknown-linux-gnu "${BASE_URL}/conduit-aarch64-unknown-linux-gnu"' - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file x86_64-unknown-linux-musl" ${BASE_URL}/conduit-x86_64-unknown-linux-musl"' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-x86_64-unknown-linux-musl" ${BASE_URL}/conduit-x86_64-unknown-linux-musl"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file conduit-x86_64-unknown-linux-gnu.deb "${BASE_URL}/conduit-x86_64-unknown-linux-gnu.deb"' From 8563ea53d5bd820c393572cfe14f644ac4b279bf Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:19:31 +0200 Subject: [PATCH 03/11] Fix: Symlink source code to /src --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cadbae4..66ac64a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,8 +50,7 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - - "mkdir -p /src/tests/sytest" - - "cp -r tests/sytest /src/tests/sytest" + - "ln -s $CI_PROJECT_DIR /src" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: From 5dea94f3d77586b0bcc497f977fc4db4d1a75b3d Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:29:46 +0200 Subject: [PATCH 04/11] Debugging CI --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 66ac64a..e732442 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,7 +50,7 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - - "ln -s $CI_PROJECT_DIR /src" + - "ln -s $CI_PROJECT_DIR /src && ls /*" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: From 1f08d3d30cb2ef2e1a10220fe70089e114f24957 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:33:34 +0200 Subject: [PATCH 05/11] Fix-Attempt: softlink conduit dir into /src --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e732442..c63485c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,7 +50,7 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - - "ln -s $CI_PROJECT_DIR /src && ls /*" + - "ln -s $CI_PROJECT_DIR/conduit /src" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: From a2b49d1933737c5d901103b2f4bb6caf4e7d53e0 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:37:02 +0200 Subject: [PATCH 06/11] More CI debugging --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c63485c..fb4f5b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,6 +50,7 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" + - "echo $CI_PROJECT_DIR" - "ln -s $CI_PROJECT_DIR/conduit /src" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" From 4f1043665727b124086432221155b2d88e7f6aad Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:41:25 +0200 Subject: [PATCH 07/11] More CI debugging --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb4f5b7..717a695 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,7 +51,8 @@ test:sytest: - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - "echo $CI_PROJECT_DIR" - - "ln -s $CI_PROJECT_DIR/conduit /src" + - "ln -s $CI_PROJECT_DIR/ /src" + - "ls -lah /src/" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: From ce09834c4b7a30558735526801d250c66f657766 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 13:48:24 +0200 Subject: [PATCH 08/11] Fix-Attempt: Remove /src before symlinking to it --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 717a695..37a0ed8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,9 +50,8 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - - "echo $CI_PROJECT_DIR" + - "rm -rf /src" - "ln -s $CI_PROJECT_DIR/ /src" - - "ls -lah /src/" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: From e7ce642258741bbb08eaf5386eee4996119945b4 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 14:11:57 +0200 Subject: [PATCH 09/11] CI: Generate junit test report --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 37a0ed8..36b643c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -56,11 +56,17 @@ test:sytest: - "cd /" script: - "/bootstrap.sh conduit" + after_script: + - "perl ./sytest/tap-to-junit-xml.pl --input /logs/results.tap --output /sytest.xml" artifacts: + when: always paths: - "/logs/**/*.log" - "/logs/**/*.log.*" - "/logs/results.tap" + - "/sytest.xml" + reports: + junit: "/sytest.xml" # --------------------------------------------------------------------- # From 3880a200c35cc7b76583f467a199a1d6e866c9f5 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 14:31:11 +0200 Subject: [PATCH 10/11] CI: Make JUnit export run, even if sytest itself failed --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36b643c..d362a7e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -55,9 +55,10 @@ test:sytest: - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: - - "/bootstrap.sh conduit" - after_script: - - "perl ./sytest/tap-to-junit-xml.pl --input /logs/results.tap --output /sytest.xml" + - "SYTEST_EXIT_CODE=0" + - "/bootstrap.sh conduit || SYTEST_EXIT_CODE=1" + - "perl /sytest/tap-to-junit-xml.pl --input /logs/results.tap --output /sytest.xml" + - "exit $SYTEST_EXIT_CODE" artifacts: when: always paths: From 2e3e3aa2bcbf560ba5e1440ac30935d5fc88cc22 Mon Sep 17 00:00:00 2001 From: Jonas Zohren Date: Sun, 18 Jul 2021 17:34:06 +0200 Subject: [PATCH 11/11] CI: Correctly parse TAP output into XML and report it to GitLab --- .gitlab-ci.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d362a7e..7c3eaad 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,24 +50,22 @@ test:sytest: - "mkdir -p /app" - "cp ./conduit-x86_64-unknown-linux-musl /app/conduit" - "chmod +x /app/conduit" - - "rm -rf /src" - - "ln -s $CI_PROJECT_DIR/ /src" + - "rm -rf /src && ln -s $CI_PROJECT_DIR/ /src" - "mkdir -p /work/server-0/database/ && mkdir -p /work/server-1/database/ && mkdir -p /work/server-2/database/" - "cd /" script: - "SYTEST_EXIT_CODE=0" - "/bootstrap.sh conduit || SYTEST_EXIT_CODE=1" - - "perl /sytest/tap-to-junit-xml.pl --input /logs/results.tap --output /sytest.xml" + - "perl /sytest/tap-to-junit-xml.pl --puretap --input /logs/results.tap --output $CI_PROJECT_DIR/sytest.xml \"Sytest\" && cp /logs/results.tap $CI_PROJECT_DIR/results.tap" - "exit $SYTEST_EXIT_CODE" artifacts: when: always paths: - - "/logs/**/*.log" - - "/logs/**/*.log.*" - - "/logs/results.tap" - - "/sytest.xml" + - "$CI_PROJECT_DIR/sytest.xml" + - "$CI_PROJECT_DIR/results.tap" reports: - junit: "/sytest.xml" + junit: "$CI_PROJECT_DIR/sytest.xml" + # --------------------------------------------------------------------- #