Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:gitlab_centos_7_-_ci_cd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:gitlab_centos_7_-_ci_cd [2018/12/08 07:31] – [Directory Listing: Builds - JAR-Archiv] klaustachtler:gitlab_centos_7_-_ci_cd [2018/12/08 07:48] (aktuell) – [jar_test_footermilter.sh - Pipeline Ausgabe] klaus
Zeile 1331: Zeile 1331:
 Eine Ausgabe in etwa wie nachfolgende sollte erscheinen, wenn der **"Runner"** die [[https://about.gitlab.com/features/gitlab-ci-cd/|Gitlab-CI]] (Continous Integration) erfolgreich abgearbeitet hat, was nachfolgende Bildschirmkopie zeigt: Eine Ausgabe in etwa wie nachfolgende sollte erscheinen, wenn der **"Runner"** die [[https://about.gitlab.com/features/gitlab-ci-cd/|Gitlab-CI]] (Continous Integration) erfolgreich abgearbeitet hat, was nachfolgende Bildschirmkopie zeigt:
  
-FIXME - Projekt - CI /CD - Jobs - job_jar_build_footermilter+{{:tachtler:gitlab:gitlab-ci_cd-jobs-job_jar_build_footermilter.png?1024|Projekt - CI /CD - Jobs - job_jar_build_footermilter}}
  
 ==== jar_test_footermilter.sh ==== ==== jar_test_footermilter.sh ====
Zeile 1367: Zeile 1367:
  
 <code bash> <code bash>
 +#!/bin/bash
 + 
 +##############################################################################
 +# Script-Name : jar_test_footermilter.sh                                     #
 +# Description : Script to test a web application java classes with.          #
 +#                                                                            #
 +#                                                                            #
 +#                                                                            #
 +#                                                                            #
 +# Last update : 07.12.2018                                                   #
 +# Version     : 1.00                                                         #
 +#                                                                            #
 +# Author      : Klaus Tachtler, <klaus@tachtler.net>                         #
 +# DokuWiki    : http://www.dokuwiki.tachtler.net                             #
 +# Homepage    : http://www.tachtler.net                                      #
 +#                                                                            #
 +#  +----------------------------------------------------------------------+  #
 +#  | This program is free software; you can redistribute it and/or modify |  #
 +#  | it under the terms of the GNU General Public License as published by |  #
 +#  | the Free Software Foundation; either version 2 of the License, or    |  #
 +#  | (at your option) any later version.                                  |  #
 +#  +----------------------------------------------------------------------+  #
 +#                                                                            #
 +# Copyright (c) 2018 by Klaus Tachtler.                                      #
 +#                                                                            #
 +##############################################################################
 + 
 +##############################################################################
 +#                                H I S T O R Y                               #
 +##############################################################################
 +# -------------------------------------------------------------------------- #
 +# Version     : x.xx                                                         #
 +# Description : <Description>                                                #
 +# -------------------------------------------------------------------------- #
 +# Version     : x.xx                                                         #
 +# Description : <Description>                                                #
 +# -------------------------------------------------------------------------- #
 +# Version     : x.xx                                                         #
 +# Description : <Description>                                                #
 +# -------------------------------------------------------------------------- #
 +#############################################################################
 + 
 +##############################################################################
 +# >>> Please edit following lines for personal settings and custom usages. ! #
 +##############################################################################
 + 
 +# CUSTOM - Script-Name.
 +SCRIPT_NAME='jar_test_footermilter'
 + 
 +# CUSTOM - Build-Environment settings.
 +CUSTOM_DIR=${CI_PROJECT_DIR}
 +JARAPP_DIR='/var/opt/gitlab/gitlab-runner/www/footermilter-build'
 +TARGET_DIR='/var/opt/gitlab/gitlab-runner/www/footermilter-test'
 +TARGET_JAR='FooterMilter.jar'
 + 
 +# CUSTOM - Mail-Recipient.
 +MAIL_RECIPIENT='user@example.com'
 + 
 +# CUSTOM - Status-Mail [Y|N].
 +MAIL_STATUS='N'
 + 
 +##############################################################################
 +# >>> Normaly there is no need to change anything below this comment line. ! #
 +##############################################################################
 + 
 +# Variables.
 +JAVAC_COMMAND=`command -v javac`
 +JAVA_COMMAND=`command -v java`
 +FIND_COMMAND=`command -v find`
 +TOUCH_COMMAND=`command -v touch`
 +CP_COMMAND=`command -v cp`
 +RM_COMMAND=`command -v rm`
 +CAT_COMMAND=`command -v cat`
 +DATE_COMMAND=`command -v date`
 +MKDIR_COMMAND=`command -v mkdir`
 +PROG_SENDMAIL=`command -v sendmail`
 +FILE_LOCK='/tmp/'$SCRIPT_NAME'.lock'
 +FILE_LOG=$TARGET_DIR$SCRIPT_NAME'.log'
 +FILE_LAST_LOG='/tmp/'$SCRIPT_NAME'.log'
 +FILE_MAIL='/tmp/'$SCRIPT_NAME'.mail'
 +VAR_HOSTNAME=`uname -n`
 +VAR_SENDER='root@'$VAR_HOSTNAME
 +VAR_EMAILDATE=`$DATE_COMMAND '+%a, %d %b %Y %H:%M:%S (%Z)'`
 + 
 +# Functions.
 +function log() {
 +        echo $1
 +        echo `$DATE_COMMAND '+%Y/%m/%d %H:%M:%S'` " INFO:" $1 >>${FILE_LAST_LOG}
 +}
 + 
 +function retval() {
 +if [ "$?" != "0" ]; then
 +        case "$?" in
 +        *)
 +                log "ERROR: Unknown error $?"
 +        ;;
 +        esac
 +fi
 +}
 + 
 +function movelog() {
 +        $CAT_COMMAND $FILE_LAST_LOG >> $FILE_LOG
 +        $RM_COMMAND -f $FILE_LAST_LOG   
 +        $RM_COMMAND -f $FILE_LOCK
 +}
 + 
 +function sendmail() {
 +        case "$1" in
 +        'STATUS')
 +                MAIL_SUBJECT='Status execution '$SCRIPT_NAME' script.'
 +        ;;
 +        *)
 +                MAIL_SUBJECT='ERROR while execution '$SCRIPT_NAME' script !!!'
 +        ;;
 +        esac
 + 
 +$CAT_COMMAND <<MAIL >$FILE_MAIL
 +Subject: $MAIL_SUBJECT
 +Date: $VAR_EMAILDATE
 +From: $VAR_SENDER
 +To: $MAIL_RECIPIENT
 +MAIL
 + 
 +$CAT_COMMAND $FILE_LAST_LOG >> $FILE_MAIL
 + 
 +$PROG_SENDMAIL -f $VAR_SENDER -t $MAIL_RECIPIENT < $FILE_MAIL
 + 
 +$RM_COMMAND -f $FILE_MAIL
 + 
 +}
 + 
 +# Main.
 +log ""
 +log "+-----------------------------------------------------------------+"
 +log "| Start test script to run junit web tests on commandline by hand.|"
 +log "+-----------------------------------------------------------------+"
 +log ""
 +log "Run script with following parameter:"
 +log ""
 +log "CUSTOM_DIR....: $CUSTOM_DIR"
 +log "JARAPP_DIR....: $JARAPP_DIR"
 +log "TARGET_DIR....: $TARGET_DIR"
 +log "TARGET_JAR....: $TARGET_JAR"
 +log ""
 +log "MAIL_RECIPIENT: $MAIL_RECIPIENT"
 +log "MAIL_STATUS...: $MAIL_STATUS"
 +log ""
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$JAVAC_COMMAND" ]; then
 +        log "Check if command '$JAVAC_COMMAND' was found....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 11
 +else
 +        log "Check if command '$JAVAC_COMMAND' was found....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$JAVA_COMMAND" ]; then
 +        log "Check if command '$JAVA_COMMAND' was found.....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 12
 +else
 +        log "Check if command '$JAVA_COMMAND' was found.....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$FIND_COMMAND" ]; then
 +        log "Check if command '$FIND_COMMAND' was found.....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 13
 +else
 +        log "Check if command '$FIND_COMMAND' was found.....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$TOUCH_COMMAND" ]; then
 +        log "Check if command '$TOUCH_COMMAND' was found....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 14
 +else
 +        log "Check if command '$TOUCH_COMMAND' was found....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$CP_COMMAND" ]; then
 +        log "Check if command '$CP_COMMAND' was found.......................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 15
 +else
 +        log "Check if command '$CP_COMMAND' was found.......................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$RM_COMMAND" ]; then
 +        log "Check if command '$RM_COMMAND' was found.......................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 16
 +else
 +        log "Check if command '$RM_COMMAND' was found.......................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$CAT_COMMAND" ]; then
 +        log "Check if command '$CAT_COMMAND' was found......................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 17
 +else
 +        log "Check if command '$CAT_COMMAND' was found......................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$DATE_COMMAND" ]; then
 +        log "Check if command '$DATE_COMMAND' was found.....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 18
 +else
 +        log "Check if command '$DATE_COMMAND' was found.....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$MKDIR_COMMAND" ]; then
 +        log "Check if command '$MKDIR_COMMAND' was found....................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 19
 +else
 +        log "Check if command '$MKDIR_COMMAND' was found....................[  OK  ]"
 +fi
 + 
 +# Check if command (file) NOT exist OR IS empty.
 +if [ ! -s "$PROG_SENDMAIL" ]; then
 +        log "Check if command '$PROG_SENDMAIL' was found................[FAILED]"
 +        sendmail ERROR
 +        movelog
 +        exit 20
 +else
 +        log "Check if command '$PROG_SENDMAIL' was found................[  OK  ]"
 +fi
 + 
 +# Check if LOCK file NOT exist.
 +if [ ! -e "$FILE_LOCK" ]; then
 +        log "Check if script is NOT already runnig .........................[  OK  ]"
 + 
 +        $TOUCH_COMMAND $FILE_LOCK
 +else
 +        log "Check if script is NOT already runnig .........................[FAILED]"
 +        log ""
 +        log "ERROR: The script was already running, or LOCK file already exists!"
 +        log ""
 +        sendmail ERROR
 +        movelog
 +        exit 20
 +fi
 + 
 +# Start build process
 +log ""
 +log "+-----------------------------------------------------------------+"
 +log "| Run tests process ............................................. |"
 +log "+-----------------------------------------------------------------+"
 +log ""
 + 
 +# Step 01: Make target directory.
 +# Check if TARGET_DIR exists. If yes delete it ande make it again. If no make it.
 +if [ ! -d "$TARGET_DIR" ]; then
 +        log "Check if TARGET_DIR exists.................................[FAILED]"
 +        $MKDIR_COMMAND -p $TARGET_DIR
 +        log "TARGET_DIR was now created.................................[  OK  ]"
 +else
 +        log "Check if TARGET_DIR exists.................................[  OK  ]"
 +        $RM_COMMAND -rf $TARGET_DIR
 +        log "TARGET_DIR was now deleted.................................[  OK  ]"
 +        $MKDIR_COMMAND -p $TARGET_DIR
 +        log "TARGET_DIR was now created.................................[  OK  ]"
 +fi
 + 
 +# Step 02: Change into target directory.                            
 +log "Change into TARGET_DIR ....................................[  OK  ]"
 +cd $TARGET_DIR
 + 
 +# Step 03: Copy jarapp directorys and files to target directory.
 +log "Copy JARAPP_DIR to TARGET_DIR .............................[  OK  ]"
 +$CP_COMMAND -ar $JARAPP_DIR/* $TARGET_DIR
  
 +# Step 04: Test the TARGET_JAR.
 +log "Test the TARGET_JAR .......................................[  OK  ]"
 +$JAVA_COMMAND -jar $TARGET_JAR -h > jartest.result
 + 
 +# Delete LOCK file.
 +if [ "$?" != 0 ]; then
 +        retval $?
 +        log ""
 +        $RM_COMMAND -f $FILE_LOCK
 +        sendmail ERROR
 +        movelog
 +        exit 99
 +else
 +        log ""
 +        log "+-----------------------------------------------------------------+"
 +        log "| End tests process ............................................. |"
 +        log "+-----------------------------------------------------------------+"
 +        log ""
 +fi
 + 
 +# Finish syncing.
 +log "+-----------------------------------------------------------------+"
 +log "| Finish......................................................... |"
 +log "+-----------------------------------------------------------------+"
 +log ""
 + 
 +# Status e-mail.
 +if [ $MAIL_STATUS = 'Y' ]; then
 +        sendmail STATUS
 +fi
 + 
 +# Check the result of Failures.
 +$CAT_COMMAND $TARGET_DIR/jartest.result                  
 +if grep -Fxqi Exception $TARGET_DIR/jartest.result
 +then
 +        log "Check the result of failures ..............................[FOUND!]"
 +        log ""
 +        # Move temporary log to permanent log
 +        movelog
 +        exit 66
 +else
 +        log "Check the result of failures ..............................[  OK  ]"
 +        log ""
 +        movelog
 +fi
 + 
 +exit 0
 </code> </code>
  
Zeile 1378: Zeile 1716:
  
 Eine Ausgabe in etwa wie nachfolgende sollte erscheinen, wenn der **"Runner"** die [[https://about.gitlab.com/features/gitlab-ci-cd/|Gitlab-CI]] (Continous Integration) erfolgreich abgearbeitet hat, was nachfolgende Bildschirmkopie zeigt: Eine Ausgabe in etwa wie nachfolgende sollte erscheinen, wenn der **"Runner"** die [[https://about.gitlab.com/features/gitlab-ci-cd/|Gitlab-CI]] (Continous Integration) erfolgreich abgearbeitet hat, was nachfolgende Bildschirmkopie zeigt:
- +{{:tachtler:gitlab:gitlab-ci_cd-jobs-job_jar_test_footermilter.png?1024|Projekt - CI /CD - Jobs - job_jar_test_footermilter}}
-FIXME - Projekt - CI /CD - Jobs - job_jar_test_footermilter+
  
 ==== Directory Listing: Builds - JAR-Archiv ==== ==== Directory Listing: Builds - JAR-Archiv ====
tachtler/gitlab_centos_7_-_ci_cd.1544250693.txt.gz · Zuletzt geändert: 2018/12/08 07:31 von klaus