image: eicweb.phy.anl.gov:4567/eic/juggler/juggler:$JUGGLER_TAG workflow: rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - if: '$CI_PIPELINE_SOURCE == "web"' - if: '$CI_PIPELINE_SOURCE == "webide"' - if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_TAG' default: tags: - phy-scratch artifacts: expire_in: 72 hours paths: - .local/detector - .local/lib - .local/bin - .local/include - .local/share - results - config - juggler.env reports: dotenv: juggler.env stages: - status-pending - config - initialize - data_init - simulate - calibrate - benchmarks - collect - deploy - trigger - status-report .status: script: - | if [ -n "${GITHUB_SHA}" ] ; then curl \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: token ${GITHUB_REPO_STATUS_TOKEN}" \ "https://api.github.com/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}" \ -d '{"state":"'"${STATE}"'", "target_url":"'"${CI_PIPELINE_URL}"'", "description":"'"${DESCRIPTION} $(TZ=America/New_York date)"'", "context":"eicweb/detector_benchmarks ('"$DETECTOR_CONFIG"')" }' ; fi benchmarks:detector:pending: stage: status-pending extends: .status variables: STATE: "pending" DESCRIPTION: "Started..." when: always common:setup: stage: config before_script: - | if [[ "${COMMON_BENCH_VERSION}" == "" ]] ; then export COMMON_BENCH_VERSION="master" fi echo "COMMON_BENCH_VERSION = ${COMMON_BENCH_VERSION}" git clone -b "${COMMON_BENCH_VERSION}" https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench.git setup script: - | if [[ "x${CI_PIPELINE_SOURCE}" == "xmerge_request_event" || "$CI_COMMIT_BRANCH" == "master" ]]; then echo "DETECTOR = ${DETECTOR}" echo "DETECTOR_CONFIG = ${DETECTOR_CONFIG}" echo "DETECTOR_VERSION = ${DETECTOR_VERSION}" echo "DETECTOR_REPOSITORYURL = ${DETECTOR_REPOSITORYURL}" echo "DETECTOR=$DETECTOR" >> juggler.env echo "DETECTOR_CONFIG=$DETECTOR_CONFIG" >> juggler.env echo "DETECTOR_VERSION=$DETECTOR_VERSION" >> juggler.env echo "DETECTOR_REPOSITORYURL=$DETECTOR_REPOSITORYURL" >> juggler.env echo "DETECTOR_DEPLOY_TOKEN_USERNAME=${DEPLOY_TOKEN_USERNAME}" >> juggler.env echo "DETECTOR_DEPLOY_TOKEN_PASSWORD=${DEPLOY_TOKEN_PASSWORD}" >> juggler.env echo "COMMON_BENCH_VERSION=$COMMON_BENCH_VERSION" >> juggler.env else if [[ "${DETECTOR}" == "" ]] ; then export DETECTOR="epic" fi if [[ "${DETECTOR_CONFIG}" == "" ]] ; then export DETECTOR_CONFIG="${DETECTOR}" fi if [[ "${DETECTOR_VERSION}" == "" ]] ; then export DETECTOR_VERSION="main" fi if [[ "${DETECTOR_REPOSITORYURL}" == "" ]] ; then export DETECTOR_REPOSITORYURL="https://github.com/eic/${DETECTOR}" fi echo "DETECTOR = ${DETECTOR}" echo "DETECTOR_CONFIG = ${DETECTOR_CONFIG}" echo "DETECTOR_VERSION = ${DETECTOR_VERSION}" echo "DETECTOR_REPOSITORYURL = ${DETECTOR_REPOSITORYURL}" echo "DETECTOR=$DETECTOR" >> juggler.env echo "DETECTOR_CONFIG=$DETECTOR_CONFIG" >> juggler.env echo "DETECTOR_VERSION=$DETECTOR_VERSION" >> juggler.env echo "DETECTOR_REPOSITORYURL=$DETECTOR_REPOSITORYURL" >> juggler.env echo "COMMON_BENCH_VERSION=$COMMON_BENCH_VERSION" >> juggler.env fi - source setup/bin/env.sh && ./setup/bin/install_common.sh common:detector: stage: initialize needs: ["common:setup"] script: - source .local/bin/env.sh && build_detector.sh - mkdir_local_data_link sim_output - mkdir -p results - mkdir -p config - print_env.sh get_data: stage: data_init needs: ["common:detector"] script: - source .local/bin/env.sh - ln -s "${LOCAL_DATA_PATH}/sim_output" sim_output - ln -s "${LOCAL_DATA_PATH}/datasets/data" data - cd ${LOCAL_DATA_PATH} && git clone --depth=1 https://eicweb.phy.anl.gov/EIC/datasets.git datasets .det_benchmark: image: eicweb.phy.anl.gov:4567/eic/juggler/juggler:$JUGGLER_TAG needs: - ["get_data","common:detector"] before_script: - source .local/bin/env.sh - ls -lrtha - ln -s "${LOCAL_DATA_PATH}/sim_output" sim_output - ln -s "${LOCAL_DATA_PATH}/datasets/data" data - ls -lrtha retry: max: 2 when: - runner_system_failure include: - local: 'benchmarks/tracking_detectors/config.yml' - local: 'benchmarks/barrel_ecal/config.yml' - local: 'benchmarks/barrel_hcal/config.yml' - local: 'benchmarks/zdc/config.yml' - local: 'benchmarks/material_maps/config.yml' - local: 'benchmarks/pid/config.yml' - local: 'benchmarks/timing/config.yml' - local: 'benchmarks/b0_tracker/config.yml' - local: 'benchmarks/others/config.yml' deploy_results: stage: deploy needs: - ["collect_results:zdc","collect_results:barrel_ecal","collect_results:barrel_hcal","collect_results:materialscan"] script: - echo "deploy results!" benchmarks:detector:success: stage: status-report extends: .status variables: STATE: "success" DESCRIPTION: "Succeeded!" when: on_success benchmarks:detector:failure: stage: status-report extends: .status variables: STATE: "failure" DESCRIPTION: "Failed!" when: on_failure benchmarks:reconstruction: stage: trigger variables: GITHUB_SHA: "${GITHUB_SHA}" GITHUB_REPOSITORY: "${GITHUB_REPOSITORY}" DETECTOR: "$DETECTOR" DETECTOR_CONFIG: "$DETECTOR_CONFIG" DETECTOR_VERSION: "$DETECTOR_VERSION" DETECTOR_REPOSITORYURL: "$DETECTOR_REPOSITORYURL" DETECTOR_DEPLOY_TOKEN_USERNAME: "${DETECTOR_DEPLOY_TOKEN_USERNAME}" DETECTOR_DEPLOY_TOKEN_PASSWORD: "${DETECTOR_DEPLOY_TOKEN_PASSWORD}" COMMON_BENCH_VERSION: "$COMMON_BENCH_VERSION" trigger: project: EIC/benchmarks/reconstruction_benchmarks strategy: depend needs: ["deploy_results"] benchmarks:physics: stage: trigger variables: GITHUB_SHA: "${GITHUB_SHA}" GITHUB_REPOSITORY: "${GITHUB_REPOSITORY}" DETECTOR: "$DETECTOR" DETECTOR_CONFIG: "$DETECTOR_CONFIG" DETECTOR_VERSION: "$DETECTOR_VERSION" DETECTOR_REPOSITORYURL: "$DETECTOR_REPOSITORYURL" DETECTOR_DEPLOY_TOKEN_USERNAME: "${DETECTOR_DEPLOY_TOKEN_USERNAME}" DETECTOR_DEPLOY_TOKEN_PASSWORD: "${DETECTOR_DEPLOY_TOKEN_PASSWORD}" COMMON_BENCH_VERSION: "$COMMON_BENCH_VERSION" trigger: project: EIC/benchmarks/physics_benchmarks strategy: depend needs: ["deploy_results"] pages: stage: deploy rules: - if: '$CI_COMMIT_BRANCH == "master" && $CI_SERVER_HOST != "eicweb.phy.anl.gov"' cache: paths: - node_modules/ image: node:latest script: - mkdir public && cp doc/main.html public/index.html artifacts: paths: - public