Skip to content
Snippets Groups Projects
gen_ci_config 1.93 KiB
Newer Older
  • Learn to ignore specific revisions
  • Whitney Armstrong's avatar
    Whitney Armstrong committed
    #!/bin/bash
    set -o nounset
    set -o errexit
    
    BENCHMARK_SCRIPT_DIR=./dummy
    CI_TAG=sodium
    CI_JOB_PREFIX=test_
    CI_FAILURE="true"
    
    function print_the_help {
      echo "USAGE: $0 [-t <runner_tag>] "
      echo "  OPTIONS: "
      echo "            -i,--input         Input scripts directory "
      echo "            -t,--tag           Gitlab Runner tag"
      echo "            -p,--prefix        job name prefix"
      echo "            --no-failure       do not allow failures"
      exit 
    }
    
    POSITIONAL=()
    while [[ $# -gt 0 ]]
    do
      key="$1"
      case $key in
        -h|--help)
          shift # past argument
          print_the_help
          ;;
        -i|--input)
          BENCHMARK_SCRIPT_DIR="$2"
          shift # past argument
          shift # past value
          ;;
        -t|--tag)
          CI_TAG="$2"
          shift # past argument
          shift # past value
          ;;
        -p|--prefix)
          CI_JOB_PREFIX="$2"
          shift # past argument
          shift # past value
          ;;
        --no-failure)
          CI_FAILURE="false"
          shift # past argument
          ;;
        *)    # unknown option
          #POSITIONAL+=("$1") # save it in an array for later
          echo "unknown option $1"
          print_the_help
          shift # past argument
          ;;
      esac
    done
    set -- "${POSITIONAL[@]}" # restore positional parameters
    
    shopt -s nullglob
    ifile=0
    
    
    cat <<EOF 
    stages:
      #- simulate
      - benchmarks
    EOF
    
    for script_name in ${BENCHMARK_SCRIPT_DIR}/*.sh
    do
      filename=$(basename ${script_name})
      filename_noext="${filename%%.*}"
      ifile=$((ifile+1))
      cat <<EOF 
    ${CI_JOB_PREFIX}${ifile}_${filename_noext}:
      tags:
        - ${CI_TAG}
      stage: benchmarks
      script:
        - bash ${script_name}
      allow_failure: ${CI_FAILURE}
    
    EOF
    done
    
    for script_name in ${BENCHMARK_SCRIPT_DIR}/*.cxx
    do
      filename=$(basename ${script_name})
      filename_noext="${filename%%.*}"
      ifile=$((ifile+1))
      cat <<EOF 
    ${CI_JOB_PREFIX}${ifile}_${filename_noext}:
      tags:
        - ${CI_TAG}
      stage: benchmarks
      script:
        - root -b -q ${script_name}
      allow_failure: ${CI_FAILURE}
    
    EOF
    done