ci/ci-common.sh
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 09 Nov 2015 00:38:23 +0000
changeset 549 8ad6734770cd
child 551 00ebb1b85f53
permissions -rw-r--r--
Added CI scripts for PetitParser.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
549
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
#
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
# A set of functions to be used in PetitParser's CI jobs
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
#
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
# Set up some environment variables (if not set by CI)
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
if [ -z "$BUILD_NUMBER" ]; then
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
   BUILD_NUMBER=0
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
fi
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
PETITCOMPILER_DATA_DIRECTORY=test-data
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
PETITCOMPILER_BENCHMARK_REPORT=benchmark-results-$BUILD_NUMBER.json
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
function ci_download_and_unzip_file {
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
  local url=$1
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
  local where=$PETITCOMPILER_DATA_DIRECTORY
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
  local file=${url##*/}
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
  local directory=${file%.zip}
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
  local status=0
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
  if [ ! -d "$PETITCOMPILER_DATA_DIRECTORY/$directory" ]; then
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    pushd "$PETITCOMPILER_DATA_DIRECTORY"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
      wget -O "$file" "$url"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
      set +e
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
      unzip -o "$file"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
      status=$?
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
      set -e
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
      case "$status" in
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        0)
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
          status=0
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
          ;;
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        1)
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
          status=0
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
          ;;
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
        2)
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
          status=0
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
          ;;
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
        *)
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
          ;;
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
      esac
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
      rm -f "$file"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    popd
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
  else
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    echo "Skipped $directory (already present)"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
  fi
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
  return "$status"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
}
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
function ci_download_test_data {
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
	if [ ! -x "$PETITCOMPILER_DATA_DIRECTORY" ]; then
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
		mkdir -p "$PETITCOMPILER_DATA_DIRECTORY"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
	fi
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
	ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/java-src.zip
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
	ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/smalltalk-src.zip
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
	ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/ruby-src.zip
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/python-src.zip
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
}
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
function ci_upload_benchmark_results {
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
	if [ -f "$PETITCOMPILER_BENCHMARK_REPORT" ]; then
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
  		url 'https://swing.fit.cvut.cz/calipel/imports/push-import'  \
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
		    --user "$CALIPEL_USER:$CALIPEL_PASSWORD" \
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
		    --compressed \
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
		    -H 'Content-Type: application/json' \
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
		    --data "@$PETITCOMPILER_BENCHMARK_REPORT"
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
	fi
8ad6734770cd Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
}