From 82e781420550592703e880766f5fcbfef1e38eec Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Tue, 9 Jul 2019 23:38:25 -0700 Subject: [PATCH] add cleanup script | fix verilator unknown bin --- .circleci/build-verilator.sh | 4 ++++ .circleci/clean-old-files.sh | 30 ++++++++++++++++++++++++++++++ .circleci/config.yml | 16 ++++++++-------- .circleci/defaults.sh | 4 ++++ 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100755 .circleci/clean-old-files.sh diff --git a/.circleci/build-verilator.sh b/.circleci/build-verilator.sh index 5a837e1..673ae52 100755 --- a/.circleci/build-verilator.sh +++ b/.circleci/build-verilator.sh @@ -12,6 +12,8 @@ source $SCRIPT_DIR/defaults.sh # call clean on exit trap clean EXIT +run_script $LOCAL_CHIPYARD_DIR/.circleci/clean-old-files.sh + if [ ! -d "$LOCAL_VERILATOR_DIR" ]; then # set stricthostkeychecking to no (must happen before rsync) run "echo \"Ping $SERVER\"" @@ -28,4 +30,6 @@ if [ ! -d "$LOCAL_VERILATOR_DIR" ]; then mkdir -p $LOCAL_VERILATOR_DIR copy $SERVER:$REMOTE_CHIPYARD_DIR/ $LOCAL_CHIPYARD_DIR copy $SERVER:$REMOTE_VERILATOR_DIR/ $LOCAL_VERILATOR_DIR + + cp -r $LOCAL_VERILATOR_DIR/install/bin/* $LOCAL_VERILATOR_DIR/install/share/verilator/bin/. fi diff --git a/.circleci/clean-old-files.sh b/.circleci/clean-old-files.sh new file mode 100755 index 0000000..0fe4f42 --- /dev/null +++ b/.circleci/clean-old-files.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# clean directories that are older than 30 days + +# get shared variables +SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" +source $SCRIPT_DIR/defaults.sh + +age () { + local AGE_SEC + local CUR_SEC + local DIFF_SEC + local SEC_PER_DAY + + SEC_PER_DAY=86400 + + CUR_SEC=$(date +%s) + AGE_SEC=$(stat -c %Y -- "$1") + DIFF_SEC=$(expr $CUR_SEC - $AGE_SEC) + + echo $(expr $DIFF_SEC / $SEC_PER_DAY) +} + +for d in $CI_DIR/*/ ; do + DIR_AGE="$(age $d)" + if [ $DIR_AGE -ge 30 ]; then + echo "Deleting $d since is it $DIR_AGE old" + rm -rf $d + fi +done diff --git a/.circleci/config.yml b/.circleci/config.yml index 94584c8..600cc99 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,14 +78,14 @@ jobs: - checkout - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Build Verilator command: | .circleci/build-verilator.sh no_output_timeout: 120m - save_cache: - key: verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + key: verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} paths: - "/home/riscvuser/verilator" prepare-example: @@ -108,7 +108,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the example subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=example @@ -137,7 +137,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boomexample subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=example CONFIG=SmallDefaultBoomConfig @@ -166,7 +166,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boomrocketexample subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=example CONFIG=SmallDefaultBoomAndRocketConfig @@ -195,7 +195,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boom subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=boom @@ -224,7 +224,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the rocketchip subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=rocketchip @@ -253,7 +253,7 @@ jobs: - riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - - verilator-installed-v2-{{ checksum "sims/verisim/verilator.mk" }} + - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the hwacha subproject using Verilator command: .circleci/do-rtl-build.sh SUB_PROJECT=hwacha diff --git a/.circleci/defaults.sh b/.circleci/defaults.sh index b639009..c4d7eb6 100755 --- a/.circleci/defaults.sh +++ b/.circleci/defaults.sh @@ -8,6 +8,10 @@ run () { ssh -o "StrictHostKeyChecking no" -t $SERVER $1 } +run_script () { + ssh -o "StrictHostKeyChecking no" -t $SERVER 'bash -s' < $1 +} + clean () { # remove remote work dir run "rm -rf $REMOTE_WORK_DIR"