Use local .ivy/.sbt in FireSim | Disable supershell | Rework remote env. vars.
This commit is contained in:
6
.github/scripts/defaults.sh
vendored
6
.github/scripts/defaults.sh
vendored
@@ -14,9 +14,6 @@ REMOTE_CHIPYARD_DIR=$GITHUB_WORKSPACE
|
||||
REMOTE_SIM_DIR=$REMOTE_CHIPYARD_DIR/sims/verilator
|
||||
REMOTE_FIRESIM_DIR=$REMOTE_CHIPYARD_DIR/sims/firesim/sim
|
||||
REMOTE_FPGA_DIR=$REMOTE_CHIPYARD_DIR/fpga
|
||||
REMOTE_JAVA_OPTS="-Xmx10G -Xss8M"
|
||||
# Disable the supershell to greatly improve the readability of SBT output when captured by Circle CI
|
||||
REMOTE_SBT_OPTS="-Dsbt.ivy.home=$REMOTE_WORK_DIR/.ivy2 -Dsbt.supershell=false -Dsbt.global.base=$REMOTE_WORK_DIR/.sbt -Dsbt.boot.directory=$REMOTE_WORK_DIR/.sbt/boot"
|
||||
|
||||
# local variables (aka within the docker container)
|
||||
LOCAL_CHIPYARD_DIR=$GITHUB_WORKSPACE
|
||||
@@ -26,7 +23,8 @@ LOCAL_FIRESIM_DIR=$LOCAL_CHIPYARD_DIR/sims/firesim/sim
|
||||
# CI uses temp directories with very long names
|
||||
# explicitly force socket creation to use /tmp to avoid name length errors
|
||||
# https://github.com/sbt/sbt/pull/6887
|
||||
JAVA_TMP_DIR=$(mktemp -d -t ci-cy-XXXXXXXX)
|
||||
REMOTE_JAVA_TMP_DIR=$(mktemp -d -t ci-cy-XXXXXXXX)
|
||||
REMOTE_COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache
|
||||
|
||||
# key value store to get the build groups
|
||||
declare -A grouping
|
||||
|
||||
6
.github/scripts/remote-do-rtl-build.sh
vendored
6
.github/scripts/remote-do-rtl-build.sh
vendored
@@ -52,6 +52,8 @@ read -a keys <<< ${grouping[$1]}
|
||||
# need to set the PATH to use the new verilator (with the new verilator root)
|
||||
for key in "${keys[@]}"
|
||||
do
|
||||
export COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache
|
||||
make -j$REMOTE_MAKE_NPROC -C $REMOTE_MAKE_DIR FIRRTL_LOGLEVEL=info JAVA_TMP_DIR=$JAVA_TMP_DIR SBT_OPTS="$REMOTE_SBT_OPTS" ${mapping[$key]}
|
||||
export COURSIER_CACHE=$REMOTE_COURSIER_CACHE
|
||||
export JVM_MEMORY=10G
|
||||
export JAVA_TMP_DIR=$REMOTE_JAVA_TMP_DIR
|
||||
make -j$REMOTE_MAKE_NPROC -C $REMOTE_MAKE_DIR FIRRTL_LOGLEVEL=info ${mapping[$key]}
|
||||
done
|
||||
|
||||
@@ -15,6 +15,7 @@ cd $REMOTE_CHIPYARD_DIR
|
||||
|
||||
# Run Firesim Scala Tests
|
||||
export FIRESIM_ENV_SOURCED=1;
|
||||
export COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache
|
||||
JAVA_TOOL_OPTIONS="$REMOTE_JAVA_OPTS -Djava.io.tmpdir=$(mktemp -d -t cy-fsim-XXXXXXXX)"
|
||||
make -C $REMOTE_FIRESIM_DIR JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS" SBT_OPTS="$REMOTE_SBT_OPTS" TARGET_SBT_PROJECT="{file:$REMOTE_CHIPYARD_DIR}firechip" testOnly ${mapping[$1]}
|
||||
export COURSIER_CACHE=$REMOTE_COURSIER_CACHE
|
||||
export JVM_MEMORY=10G
|
||||
export JAVA_TMP_DIR=$REMOTE_JAVA_TMP_DIR
|
||||
make -C $REMOTE_FIRESIM_DIR TARGET_SBT_PROJECT="{file:$REMOTE_CHIPYARD_DIR}firechip" testOnly ${mapping[$1]}
|
||||
|
||||
1
.github/workflows/chipyard-full-flow.yml
vendored
1
.github/workflows/chipyard-full-flow.yml
vendored
@@ -78,6 +78,7 @@ jobs:
|
||||
run: |
|
||||
cd ${{ env.REMOTE_WORK_DIR }}
|
||||
eval "$(conda shell.bash hook)"
|
||||
mkdir ${{ env.JAVA_TMP_DIR }}
|
||||
export MAKEFLAGS="-j32"
|
||||
./build-setup.sh -f
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@ sim_common_files ?= $(build_dir)/sim_files.common.f
|
||||
#########################################################################################
|
||||
JAVA_HEAP_SIZE ?= 8G
|
||||
JAVA_TMP_DIR ?= $(base_dir)/.java_tmp
|
||||
export JAVA_TOOL_OPTIONS ?= -Xmx$(JAVA_HEAP_SIZE) -Xss8M -Djava.io.tmpdir=$(JAVA_TMP_DIR)
|
||||
export JAVA_TOOL_OPTIONS ?= -Xmx$(JAVA_HEAP_SIZE) -Xss8M -Dsbt.supershell=false -Djava.io.tmpdir=$(JAVA_TMP_DIR)
|
||||
|
||||
#########################################################################################
|
||||
# default sbt launch command
|
||||
|
||||
Reference in New Issue
Block a user