Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
  • artifact-evaluation
  • artifact-evaluation-poster
  • ci
4 results

Target

Select target project
  • stgroup / trainbenchmark
  • Jesper / trainbenchmark
2 results
Select Git revision
  • restructure-2021
  • master
  • ae-submission
  • journal-diagrams
  • artifact-evaluation
  • artifact-evaluation-poster
  • ci
7 results
Show changes

Commits on Source 9

10 files
+ 242
0
Compare changes
  • Side-by-side
  • Inline

Files

.dockerignore

0 → 100644
+5 −0
Original line number Diff line number Diff line
.gitlab-ci
Dockerfile
.dockerignore
models
.git

.gitlab-ci.yml

0 → 100644
+53 −0
Original line number Diff line number Diff line
image: docker:latest

# mostly taken from: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

variables:
    DOCKER_REPOSITORY: git-st.inf.tu-dresden.de:4567
    CONTAINER_RELEASE_IMAGE: $DOCKER_REPOSITORY/stgroup/trainbenchmark:latest
    CONTAINER_TEST_IMAGE: $DOCKER_REPOSITORY/stgroup/trainbenchmark:$CI_COMMIT_REF_NAME


stages:
    - build
    - test
    - release

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $DOCKER_REPOSITORY

build:
    stage: build
    tags:
        - dockered
    script:
        - docker build --pull -t $CONTAINER_TEST_IMAGE .
        - docker push $CONTAINER_TEST_IMAGE


test_test:
  stage: test
  tags:
      - dockered
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker run $CONTAINER_TEST_IMAGE /trainbenchmark/gradlew --no-daemon test

test_check:
  stage: test
  tags:
      - dockered
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker run $CONTAINER_TEST_IMAGE /trainbenchmark/gradlew --no-daemon check

release-image:
    stage: release
    tags:
        - dockered
    script:
        - docker pull $CONTAINER_TEST_IMAGE
        - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
        - docker push $CONTAINER_RELEASE_IMAGE
    only:
        - master         

Dockerfile

0 → 100644
+44 −0
Original line number Diff line number Diff line
# glpk also from https://github.com/dmccloskey/glpk/blob/master/Dockerfile

# Set the base image to Ubuntu
FROM ubuntu:latest
# Switch to root for install
USER root

ENV DEBIAN_FRONTEND noninteractive
ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user \
    && chmod -R u+rwx $HOME \
    && chown -R user:user $HOME

RUN apt-get update -y && apt-get install -y \
	openjdk-8-jdk \
	r-base \
	r-base-dev \
	libudunits2-dev \
	cowsay \
	less \
	--no-install-recommends \
	&& apt-get clean \
	&& rm -rf /var/lib/apt/lists/*

COPY trainbenchmark-reporting/install.R /trainbenchmark/trainbenchmark-reporting/install.R
RUN Rscript /trainbenchmark/trainbenchmark-reporting/install.R

#USER user
WORKDIR /trainbenchmark

COPY --chown=user:user . .
COPY docker/bashrc /home/user/.bashrc

RUN ./gradlew --no-daemon preprocess
RUN ./gradlew --no-daemon build shadowJar -x test
RUN ./gradlew --no-daemon initScripts



# when benchmarking run:
# RUN ./gradlew --no-daemon generate
# RUN ./gradlew --no-daemon individualInjectBenchmark
# RUN ./gradlew --no-daemon individualRepairBenchmark
ENTRYPOINT /bin/bash

docker/bashrc

0 → 100644
+15 −0
Original line number Diff line number Diff line
function csv_viewer {
 column -t -s, -n "$@" | less -F -S -X -K
}
alias configure_default="/trainbenchmark/scripts/configure.sh 1 1024 900 10"
alias configure_medium="/trainbenchmark/scripts/configure.sh 8 256 60 5"
alias configure_small="/trainbenchmark/scripts/configure.sh 1 32 60 3"

alias doc_motd="bash /trainbenchmark/docs/motd"
alias doc_basic="bash /trainbenchmark/docs/basic"
alias doc_advanced="bash /trainbenchmark/docs/advanced"

alias frogsay="/usr/games/cowsay -f /trainbenchmark/docker/frog.cow"
alias frogsay_tip="shuf -n 1 /trainbenchmark/docker/tips | frogsay"

doc_motd

docker/frog.cow

0 → 100644
+28 −0
Original line number Diff line number Diff line
$the_cow =<<"EOC"
  $thoughts
     ___        _--_
    /    -     /     \\
   ( OOO   \\  ( @@  )
   |  OOO _;\\-/| @@@_|
    \\___/######\\___/\\
      /##############\\
     /  ######   ##  #|
    /  ##@##@##       |
   /    ######     ##  \\
 <______-------___\\  . //_
    |       ____  | | //# \\__~__
     \\      $tongue    \\  //###  \\   \\
      |             /\'  ##  ##  ##\\   __--~--_
       \\_________- /\\ )    ^     ##|--########\\
  /--~-_\\________/_  |          #@##|#######Y##|
 | \\ `  /|       /O/ ( ###  \')    ##/######/###/
 \\  \\  | |       --  |  ###        /LLLLL--###/
  \\_ \\/  |            \\_   \\    ) /####_____--
 ___ /    \\           /     |   _-####\\
(___/     -\\_________/     / -- |#####@@@@@@\'_
 (__\\_      __,) (.___     ,/    /#####      `@@
      | -\\\\-          //-//      @@  @@@@@.
      | | \\\\_       _// //      @\'       \'@@.
      (.)   \\_)    / / //                   @@@
                  (_) (_\'
EOC

docker/tips

0 → 100644
+7 −0
Original line number Diff line number Diff line
Use "doc_motd" to display the login message
Use "doc_basic" to display the basic commands to run the benchmark
Use "doc_advanced" to see advanced configuration
Use "csv_view" to get a nicely formatted output of csv files
I am the Fog Frog
What the Fog?
Use "./scripts/configure.sh" to change problem sizes. Some defaults are also inside the commands "configure_default", "configure_medium", "configure_small"

docs/advanced

0 → 100644
+21 −0
Original line number Diff line number Diff line
#!/bin/bash
echo -e "\033[1;91mAdvanced Configuration:"
echo -e ""
echo -e "\033[1;91mCoarse Configuration"
echo -e "\033[0mUse the ./scripts/configure.sh command or configure_small or configure_medium or configure_default"
echo -e ""
echo -e "\033[1;91mGeneration of test-models"
echo -e "\033[0mFor example to change the maxSize option. Can be configured inside:"
echo -e "* trainbenchmark-scripts/src-template/GeneratorScript.groovy"
echo -e "When you are finished, run:"
echo -e "* ./gradlew initScripts"
echo -e "* ./gradlew generate"
echo -e ""
echo -e "\033[1;91mBenchmarking"
echo -e "\033[0mCan be configured inside:"
echo -e "* trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy"
echo -e "* trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy"
echo -e "When you are finished, run:"
echo -e "* ./gradlew initScripts"
echo -e "* ./gradlew individualInjectBenchmark"
echo -e "* ./gradlew individualRepairBenchmark"

docs/basic

0 → 100644
+11 −0
Original line number Diff line number Diff line
#!/bin/bash
echo -e "\\033[1;96mQuick Start"
echo -e "\\033[0m* configure_small"
echo -e "* ./gradlew generate # will generate the test-models"
echo -e "* ./gradlew individualInjectBenchmark"
echo -e "* ./gradlew individualRepairBenchmark"
echo -e ""
echo -e "\\033[1;96mReading the Benchmark results"
echo -e "\\033[0mResults of individualInjectBenchmark and individualRepairBenchmark are stored inside:"
echo -e "* XXXX for graphs"
echo -e "* results/recent for csv - use command: csv_viewer data.csv"

docs/motd

0 → 100644
+21 −0
Original line number Diff line number Diff line
#!/bin/bash
# echo -e "                                                                                    "
# echo -e "  *   )                          )                      )                        )  "
# echo -e "  )  /( (       )  (          ( /(    (              ( /(     )       )  (    ( /(  "
# echo -e " ( )(_)))(   ( /(  )\   (     )\())  ))\  (      (   )\())   (     ( /(  )(   )\()) "
# echo -e "(_(_())(()\  )(_))((_)  )\ ) ((_)\  /((_) )\ )   )\ ((_)\    )\  ' )(_))(()\ ((_)\  "
# echo -e "|_   _| ((_)((_)_  (_) _(_/( | |(_)(_))  _(_/(  ((_)| |(_) _((_)) ((_)_  ((_)| |(_) "
# echo -e "  | |  | '_|/ _' | | || ' \))| '_ \/ -_)| ' \))/ _| | ' \ | '  \()/ _' || '_|| / /  "
# echo -e "  |_|  |_|  \__,_| |_||_||_| |_.__/\___||_||_| \__| |_||_||_|_|_| \__,_||_|  |_\_\  "
# echo -e "                                                                                    "
echo "Welcome to the Trainbenchmark! I'll be your guide.. just type frogsay_tip" | /usr/games/cowsay -f /trainbenchmark/docker/frog.cow
#DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
#bash $DIR/basic
echo -e ""
echo -e "\033[1;96mDocumentation"
echo -e "\033[0mRun the following commands"
echo -e "* doc_motd      # displays this message"
echo -e "* doc_basic     # displays the basic guide"
echo -e "* doc_advanced  # displays the advanced guide"
echo -e ""
# bash $DIR/advanced

scripts/configure.sh

0 → 100755
+37 −0
Original line number Diff line number Diff line
#!/bin/bash

cd "$( cd "$( dirname "$0" )" && pwd )/../"||exit 1

MINSIZE="$1"
MAXSIZE="$2"
TIMEOUT="$3"
RUNS="$4"

if [ -z "$RUNS" ]
then
    echo "Usage: ./scripts/configure.sh min max timeout runs"
    echo "Will configure the generateor and benchmark to use problems between sizes min and max"
    echo "The benchmark receives a timeout in seconds and the amount of runs"
    echo "Default is: ./scripts/configure.sh 1 1024 900 10"
    exit 1
fi

echo -e "\\033[1;96mRemember that this only configures and initializes. Further steps:"
echo -e "\\033[1;91mGenerate:"
echo -e "\\033[0m  if not yet done run ./gradlew generate"
echo "     beware maxSize 1024 -> ~40GB of data; 128 -> ~1.5GB"
echo -e "\\033[1;91mBenchmark:"
echo -e "\\033[0m  ./gradlew individualInjectBenchmark"
echo "  ./gradlew individualRepairBenchmark"

sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/GeneratorScript.groovy
sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/GeneratorScript.groovy
sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy
sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy
sed -i "s/^def timeout =.*/def timeout = $TIMEOUT/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy
sed -i "s/^def runs =.*/def runs = $RUNS/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy
sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy
sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy
sed -i "s/^def timeout =.*/def timeout = $TIMEOUT/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy
sed -i "s/^def runs =.*/def runs = $RUNS/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy
./gradlew --no-daemon initScripts