diff --git a/ansible/roles/submitter_deploy/files/submitter-env.ini b/ansible/roles/submitter_deploy/files/submitter-env.ini index 6e2cc157..b3e253cb 100755 --- a/ansible/roles/submitter_deploy/files/submitter-env.ini +++ b/ansible/roles/submitter_deploy/files/submitter-env.ini @@ -39,4 +39,4 @@ JOB_CONFIG_DEFAULT = OPENJDK_17 AGENT_GROUPS_DEFAULT = AWSAgents,Spotinst Java Agents,DotNet,Bynet #AGENT_GROUPS_DEFAULT = Spotinst Java Agents,DotNet,Bynet DAILY_JOB_PRIORITY_DEFAULT = 0 -NIGHTLY_JOB_PRIORITY_DEFAULT = 3 \ No newline at end of file +NIGHTLY_JOB_PRIORITY_DEFAULT = 3 diff --git a/docker/Dockerfile b/docker/Dockerfile index 575ad5d8..570c9689 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,11 +2,18 @@ FROM ubuntu ARG user=newman ARG group=newman -ARG uid=1000 -ARG gid=1000 +ARG uid=1001 +ARG gid=1001 + +ARG JAVA_VER=17 +# ARG NODE_VER=8.9.3 +ARG NODE_VER=20.12.1 +# ARG MVN_VER=3.3.9 +ARG MVN_VER=3.6.3 RUN apt-get update -y -RUN apt-get install wget nano -y +RUN apt-get install wget vim nano sudo curl netbase openjdk-${JAVA_VER}-jdk -y && apt-get clean +ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VER}-openjdk-amd64/ # Jenkins is run with user `newman`, uid = 1000 @@ -15,45 +22,66 @@ RUN apt-get install wget nano -y RUN groupadd -g ${gid} ${group} \ && useradd -d "/home/${user}" -u ${uid} -g ${gid} -m -s /bin/bash ${user} -# Install Java. -RUN apt-get install openjdk-8-jdk -y -ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/ # Install Maven -RUN wget --no-verbose -O /tmp/apache-maven-3.3.9.tar.gz \ - http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz +# RUN wget --no-verbose -O /tmp/apache-maven-3.3.9.tar.gz \ +# http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -# stop building if md5sum does not match -RUN echo "516923b3955b6035ba6b0a5b031fbd8b /tmp/apache-maven-3.3.9.tar.gz" | \ - md5sum -c +# # stop building if md5sum does not match +# RUN echo "516923b3955b6035ba6b0a5b031fbd8b /tmp/apache-maven-3.3.9.tar.gz" | \ +# md5sum -c -# install in /opt/maven -RUN mkdir -p /opt/maven +# # install in /opt/maven +# RUN mkdir -p /opt/maven -RUN tar xzf /tmp/apache-maven-3.3.9.tar.gz --strip-components=1 \ - -C /opt/maven +# RUN tar xzf /tmp/apache-maven-3.3.9.tar.gz --strip-components=1 \ +# -C /opt/maven -RUN ln -s /opt/maven/bin/mvn /usr/local/bin -RUN rm -f /tmp/apache-maven-3.3.9.tar.gz +# RUN ln -s /opt/maven/bin/mvn /usr/local/bin +# RUN rm -f /tmp/apache-maven-3.3.9.tar.gz +# ============================== +# Install Maven +# ============================== +ARG MVN_ARCHIVE=apache-maven-${MVN_VER}-bin.tar.gz +RUN wget --no-verbose -O /tmp/${MVN_ARCHIVE} \ + http://archive.apache.org/dist/maven/maven-3/${MVN_VER}/binaries/${MVN_ARCHIVE} +# stop building if md5sum does not match +# RUN echo "516923b3955b6035ba6b0a5b031fbd8b /tmp/${MVN_ARCHIVE}" | md5sum -c +RUN mkdir -p /opt/maven && \ + tar xvfz /tmp/${MVN_ARCHIVE} --strip-components=1 -C /opt/maven && \ + rm -f /tmp/${MVN_ARCHIVE} +ENV PATH="/opt/maven/bin:${PATH}" +RUN mvn --version -# get node -RUN echo 'get node tar.gz' -RUN wget --no-verbose -O /tmp/node-v8.9.3-linux-x64.tar.gz \ - https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.gz +# ============================== +# Install NODE.JS runtime +# ============================== RUN mkdir /opt/node +RUN wget --no-verbose -O /tmp/node-v${NODE_VER}-linux-x64.tar.gz \ + https://nodejs.org/dist/v${NODE_VER}/node-v${NODE_VER}-linux-x64.tar.gz +RUN tar zxvf /tmp/node-v${NODE_VER}-linux-x64.tar.gz --strip-components=1 -C /opt/node && \ + rm -f /tmp/node-v${NODE_VER}-linux-x64.tar.gz +ENV PATH="/opt/node/bin:${PATH}" +RUN node --version && npm --version -# unpack node tar.gz -RUN echo 'unpacking node tar.gz' && \ - tar zxvf /tmp/node-v8.9.3-linux-x64.tar.gz --strip-components=1 \ - -C /opt/node && \ - rm -f /tmp/node-v8.9.3-linux-x64.tar.gz +# get node +# RUN echo 'get node tar.gz' +# RUN wget --no-verbose -O /tmp/node-v8.9.3-linux-x64.tar.gz \ +# https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.gz -RUN ln -s /opt/node/bin/node /usr/local/bin && ln -s /opt/node/bin/npm /usr/local/bin +# RUN mkdir /opt/node -RUN node --version && \ - npm --version +# RUN echo 'unpacking node tar.gz' && \ +# tar zxvf /tmp/node-v8.9.3-linux-x64.tar.gz --strip-components=1 \ +# -C /opt/node && \ +# rm -f /tmp/node-v8.9.3-linux-x64.tar.gz + +# RUN ln -s /opt/node/bin/node /usr/local/bin && ln -s /opt/node/bin/npm /usr/local/bin + +# RUN node --version && \ +# npm --version USER ${user} @@ -63,15 +91,12 @@ RUN echo 'installing elm' && \ ENV PATH=/home/${user}/.npm-global/:$PATH ENV globalDir="/home/${user}/.npm-global/" -RUN cd ${globalDir} && wget --no-verbose -O "${globalDir}"/elm.tar.gz https://github.com/elm-lang/elm-platform/releases/download/0.18.0-exp/elm-platform-linux-64bit.tar.gz && \ - tar -zxvf "${globalDir}"/elm.tar.gz +RUN echo ELM +RUN cd ${globalDir} && \ + wget --no-verbose -O "${globalDir}"/elm.tar.gz https://github.com/elm-lang/elm-platform/releases/download/0.18.0-exp/elm-platform-linux-64bit.tar.gz && \ + tar -zxvf "${globalDir}"/elm.tar.gz -#RUN npm install -g elm@0.18.0 +#RUN npm install -g elm@0.19.0 VOLUME /newman/ ENV PATH=$JAVA_HOME/bin:$PATH - -USER root -RUN apt-get install sudo curl -y netbase - -USER ${user} diff --git a/docker/docker-build.sh b/docker/docker-build.sh index 007e375a..042e8fde 100755 --- a/docker/docker-build.sh +++ b/docker/docker-build.sh @@ -1,6 +1,7 @@ #!/bin/bash DIRNAME=`cd $(dirname ${BASH_SOURCE[0]}) && pwd` -docker build --build-arg user=$USER --build-arg uid=$(id -u) --build-arg gid=$(id -g) -t newman ${DIRNAME} +#docker build --build-arg user=$USER --build-arg uid=$(id -u) --build-arg gid=$(id -g) -t newman ${DIRNAME} +docker build -t newman ${DIRNAME} -docker pull mongo \ No newline at end of file +docker pull mongo diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml new file mode 100644 index 00000000..7229b24d --- /dev/null +++ b/docker/docker-compose.yaml @@ -0,0 +1,48 @@ +version: "3.9" + +networks: + default: + name: internal + driver: bridge + external: + driver: bridge + +volumes: + mongo-data: + driver: local + +services: + mongodb: + image: mongo:latest + container_name: mongodb_container + restart: always + ports: + - 27017:27017 + environment: + MONGO_INITDB_ROOT_USERNAME: admin + MONGO_INITDB_ROOT_PASSWORD: admin + MONGO_INITDB_DATABASE: newmandb + volumes: + - ./mongo-data:/data/db + + newman-server: + container_name: newman-server + image: gigaspaces/newman-server:latest + build: + context: ./ + dockerfile: Dockerfile + platform: ${PLATFORM:-linux/amd64} + ports: + - 8443:8443 + depends_on: + - mongodb + environment: + NODE_ENV: development + volumes: + - ./:/newman + # healthcheck: + # test: curl --fail https://127.0.0.1:8443 || exit 1 + # interval: 30s + # retries: 10 + # start_period: 30s + # timeout: 10s diff --git a/newman-analytics/bin/newman-crontab.file b/newman-analytics/bin/newman-crontab.file index 26e94c20..1990e9ca 100755 --- a/newman-analytics/bin/newman-crontab.file +++ b/newman-analytics/bin/newman-crontab.file @@ -19,4 +19,4 @@ 00 7,10,15 * * * cd /data/newman/newman/newman-analytics/bin && ./newman-analytics.sh ../resources/crons/alert/alert.properties > /data/newman/newman/newman-analytics/logs/alert.log 2>&1 00 7,10,15 * * * cd /data/newman/newman/newman-analytics/bin && ./diskspace.sh > /data/newman/newman/newman-analytics/logs/ds_alert.log 2>&1 -#@reboot . /etc/environment; cd /home/xap/newman-server; ./run.sh +@reboot crontab /data/newman/newman/newman-analytics/bin/newman-crontab.file diff --git a/newman-analytics/resources/crons/alert/alert.properties b/newman-analytics/resources/crons/alert/alert.properties new file mode 100644 index 00000000..7b5a6d2c --- /dev/null +++ b/newman-analytics/resources/crons/alert/alert.properties @@ -0,0 +1,8 @@ +cronjob-class = com.gigaspaces.newman.crons.alert.DiskSpaceAlertCronJob + +# mailman properties +mail.account.username = +mail.account.password = +mail.message.recipients = rnd@gigaspaces.com + +crons.alert.capacityThreshold = 70 diff --git a/newman-analytics/resources/crons/cleanse/cleanse.properties b/newman-analytics/resources/crons/cleanse/cleanse.properties new file mode 100644 index 00000000..4be25961 --- /dev/null +++ b/newman-analytics/resources/crons/cleanse/cleanse.properties @@ -0,0 +1,4 @@ +cronjob-class = com.gigaspaces.newman.crons.cleanse.CleanseCronJob + +crons.cleanse.numberOfDaysToNotDelete = 20 + diff --git a/newman-analytics/resources/crons/suitediff/body-template.st b/newman-analytics/resources/crons/suitediff/body-template.st new file mode 100644 index 00000000..2b08314a --- /dev/null +++ b/newman-analytics/resources/crons/suitediff/body-template.st @@ -0,0 +1,65 @@ + +
+ $if(hiss)$ + + $endif$ + $if(suitesThatDidNotParticipate)$ +Skipped Suites: + $suitesThatDidNotParticipate: { + $it$, + }$ +
+ Summary:
+ $if(summary.increasingDiff)$(+$summary.totalIncreasingDiff$ ↑)$endif$
+ $if(summary.decreasingDiff)$($summary.totalDecreasingDiff$ ↓)$endif$
+
$totalSuites$ suites,
+
$totalPassed$ passed, $totalFailed$ failed, $totalFailedx$ failedx3
+
| Suite | +Failures | +Total | +
|---|---|---|
| $it.suiteName$ | ++ $it.failedTests$ + $if(it.increasingDiffFailedTests)$(+$it.diffFailedTests$ ↑) + $elseif(it.decreasingDiffFailedTests)$($it.diffFailedTests$ ↓) + $endif$ + | ++ $it.totalTests$ + $if(it.increasingDiffTotalTests)$(+$it.diffTotalTests$ ↑) + $elseif(it.decreasingDiffTotalTests)$($it.diffTotalTests$ ↓) + $endif$ + | +
| latest ($latestBuildBranch$) | $latestBuildName$ | $latestBuildDate$ | ◴ $latestBuildDuration$ | |||
| previous ($previousBuildBranch$) | $previousBuildName$ | $previousBuildDate$ | ◷ $previousBuildDuration$ | |||
| changes | + $if(insightEdgeChangeset)$insightEdge | + $else$ | xap-open | xap | + $endif$ + |