@@ -43,50 +43,56 @@ cleanup() {
4343# Set up trap to ensure cleanup runs on exit
4444trap cleanup EXIT
4545
46- # Get nightly version info from Cargo.toml
47- source ci/get_roc_nightly_url.sh
48- NEED_DOWNLOAD=false
49-
5046echo " === basic-cli CI ==="
5147echo " "
5248
53- # Check if cached roc exists and matches pinned version
54- # Derive directory name from archive name (strip .tar.gz or .zip extension)
55- ROC_DIR=" ${ROC_NIGHTLY_ARCHIVE% .tar.gz} "
56- ROC_DIR=" ${ROC_DIR% .zip} "
57- if [ -d " $ROC_DIR " ] && [ -f " $ROC_DIR /roc" ]; then
58- CACHED_VERSION=$( " ./$ROC_DIR /roc" version 2> /dev/null || echo " unknown" )
59- if echo " $CACHED_VERSION " | grep -q " $ROC_NIGHTLY_COMMIT " ; then
60- echo " roc already at correct version: $CACHED_VERSION "
49+ if [ -n " ${ROC:- } " ]; then
50+ # Use user-specified roc binary
51+ ROC_BIN_DIR=" $( cd " $( dirname " $ROC " ) " && pwd) "
52+ export PATH=" $ROC_BIN_DIR :$PATH "
53+ else
54+ # Get nightly version info from Cargo.toml
55+ source ci/get_roc_nightly_url.sh
56+ NEED_DOWNLOAD=false
57+
58+ # Check if cached roc exists and matches pinned version
59+ # Derive directory name from archive name (strip .tar.gz or .zip extension)
60+ ROC_DIR=" ${ROC_NIGHTLY_ARCHIVE% .tar.gz} "
61+ ROC_DIR=" ${ROC_DIR% .zip} "
62+ if [ -d " $ROC_DIR " ] && [ -f " $ROC_DIR /roc" ]; then
63+ CACHED_VERSION=$( " ./$ROC_DIR /roc" version 2> /dev/null || echo " unknown" )
64+ if echo " $CACHED_VERSION " | grep -q " $ROC_NIGHTLY_COMMIT " ; then
65+ echo " roc already at correct version: $CACHED_VERSION "
66+ else
67+ echo " Cached roc ($CACHED_VERSION ) doesn't match nightly ($ROC_NIGHTLY_COMMIT )"
68+ echo " Removing stale roc directory..."
69+ rm -rf " $ROC_DIR "
70+ NEED_DOWNLOAD=true
71+ fi
6172 else
62- echo " Cached roc ($CACHED_VERSION ) doesn't match nightly ($ROC_NIGHTLY_COMMIT )"
63- echo " Removing stale roc directory..."
64- rm -rf " $ROC_DIR "
6573 NEED_DOWNLOAD=true
6674 fi
67- else
68- NEED_DOWNLOAD=true
69- fi
7075
71- if [ " $NEED_DOWNLOAD " = true ]; then
72- echo " Downloading Roc nightly $ROC_NIGHTLY_COMMIT ..."
73- echo " URL: $ROC_NIGHTLY_URL "
76+ if [ " $NEED_DOWNLOAD " = true ]; then
77+ echo " Downloading Roc nightly $ROC_NIGHTLY_COMMIT ..."
78+ echo " URL: $ROC_NIGHTLY_URL "
7479
75- # Clean up any old nightly directories
76- rm -rf roc_nightly-*
80+ # Clean up any old nightly directories
81+ rm -rf roc_nightly-*
7782
78- curl -fOL " $ROC_NIGHTLY_URL "
79- tar -xzf " $ROC_NIGHTLY_ARCHIVE "
80- rm -f " $ROC_NIGHTLY_ARCHIVE "
83+ curl -fOL " $ROC_NIGHTLY_URL "
84+ tar -xzf " $ROC_NIGHTLY_ARCHIVE "
85+ rm -f " $ROC_NIGHTLY_ARCHIVE "
8186
82- # Add to GITHUB_PATH if running in CI
83- if [ -n " ${GITHUB_PATH:- } " ]; then
84- echo " $( pwd) /$ROC_DIR " >> " $GITHUB_PATH "
87+ # Add to GITHUB_PATH if running in CI
88+ if [ -n " ${GITHUB_PATH:- } " ]; then
89+ echo " $( pwd) /$ROC_DIR " >> " $GITHUB_PATH "
90+ fi
8591 fi
86- fi
8792
88- # Ensure roc is in PATH
89- export PATH=" $( pwd) /$ROC_DIR :$PATH "
93+ # Ensure roc is in PATH
94+ export PATH=" $( pwd) /$ROC_DIR :$PATH "
95+ fi
9096
9197echo " "
9298echo " Using roc version: $( roc version) "
0 commit comments