Skip to content

Commit

Permalink
Merge pull request #48 from CMU-cabot/improve-release
Browse files Browse the repository at this point in the history
Improve release
  • Loading branch information
daisukes authored Feb 13, 2025
2 parents 4b2c29f + 4bb6691 commit 6dc8fc0
Show file tree
Hide file tree
Showing 7 changed files with 106 additions and 54 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.env
cabot-base
cabot-common
cabot-description
11 changes: 11 additions & 0 deletions dependency-override.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#
# this file is used by -o option of setup-dependency.repos (alternative option of deprecated -s option)
# it is intended to use only for multi-repos dependency updates
# developer can commit this file, but it may cause conflict during merge
#

repositories:
cabot-common:
type: git
url: https://github.com/CMU-cabot/cabot-common
version: daisukes/separate-common-and-base
13 changes: 13 additions & 0 deletions dependency-release.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
repositories:
cabot-common:
type: git
url: https://github.com/CMU-cabot/cabot-common
version: 1d784dce364ad6e7e4b9f1da54baa4c51a8a8254
cabot-description:
type: git
url: https://github.com/CMU-cabot/cabot-description
version: 5374b9b5d3a252e8cd174b4b83baca891a671a22
docker/driver/ros_odrive:
type: git
url: https://github.com/CMU-cabot/ros_odrive.git
version: 0a3cc6e8e94388eeebb7b80841df6f9e70ceaffd
5 changes: 5 additions & 0 deletions dependency.repos
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
repositories:
cabot-base:
type: git
url: https://github.com/CMU-cabot/cabot-base
version: main

cabot-common:
type: git
url: https://github.com/CMU-cabot/cabot-common
Expand Down
2 changes: 1 addition & 1 deletion docker-compose-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ services:
# code from dependencies
- ./cabot-common/cabot_common:/home/developer/driver_ws/src/cabot_common
- ./cabot-common/cabot_msgs:/home/developer/driver_ws/src/cabot_msgs
- ./cabot-common/docker/humble-custom/people:/home/developer/driver_ws/src/people
- ./cabot-base/docker/humble-custom/people:/home/developer/driver_ws/src/people
- ./cabot-description/cabot_description:/home/developer/driver_ws/src/cabot_description
# code
- ./cabot_base:/home/developer/driver_ws/src/cabot_base
Expand Down
2 changes: 1 addition & 1 deletion docker/driver/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ USER $USERNAME

COPY --from=src ./cabot-common/cabot_common $HOME/driver_ws/src/cabot_common
COPY --from=src ./cabot-common/cabot_msgs $HOME/driver_ws/src/cabot_msgs
COPY --from=src ./cabot-common/docker/humble-custom/people $HOME/driver_ws/src/people
COPY --from=src ./cabot-base/docker/humble-custom/people $HOME/driver_ws/src/people
COPY --from=src ./cabot-description/cabot_description $HOME/driver_ws/src/cabot_description
COPY --from=src ./cabot_base $HOME/driver_ws/src/cabot_base
COPY --from=src ./cabot_serial $HOME/driver_ws/src/cabot_serial
Expand Down
126 changes: 74 additions & 52 deletions setup-dependency.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,39 +26,61 @@ function blue {
echo -en "\033[0m" ## reset color
}


function help {
echo "Usage: $0 <option>"
echo ""
echo "-h show this help"
echo "-c clean (rm -rf) dependency repositories"
echo "-n <count> max count for recursive check (default=2)"
echo "-n <count> max count for recursive check (default=3)"
echo "-r update depedency-release.repos"
echo "-s <sed cmd> apply sed to dependency.repos file with the command"
echo "-d use dependency.repos and dependency-dev.repos not dependency-release.repos"
echo "-o use dependency-override.repos"
echo "-s **DEPRECATED** use -o option instead"
echo ""
echo "# dependency.repos # refer sub repos by mainly branches, cyclic"
echo "# dependency-override.repos # override dependency.repos for dev branches (you can commit)"
echo "# dependency-release.repose # freezed one, including all sub-sub repos, non-cyclic"
echo ""
echo "example"
echo "$0 # most common"
echo "$0 -d # for development"
echo ""
echo "edit dependency-override.repos # override reuqired repos branches"
echo "$0 -d -o # use dependency.repos overwritten by dependency-override.repos"
}

clean=0
count=3
release=0
sed_cmd=
development=0
override=0

while getopts "hcn:rs:" arg; do
while getopts "hcdn:or" arg; do
case $arg in
h)
help
exit
;;
c)
clean=1
;;
n)
count=$OPTARG
;;
r)
release=1
;;
s)
sed_cmd=$OPTARG
;;
h)
help
exit
;;
c)
clean=1
;;
d)
development=1
;;
n)
count=$OPTARG
;;
o)
override=1
;;
r)
release=1
;;
*)
help
exit
;;
esac
done

Expand All @@ -72,23 +94,25 @@ fi


if [[ $clean -eq 1 ]]; then
pwd=$(pwd)
pwd=$(pwd)
find * -name ".git" | while read -r line; do
pushd $line/../
if git diff --quiet && ! git ls-files --others --exclude-standard | grep -q .; then
echo "rm -rf $pwd/$(dirname $line)"
#rm -rf $pwd/$(dirname $line)
else
blue "There are unstaged/untracked changes in $line"
fi
popd
if [[ -d $line/../ ]]; then
pushd $line/../
if git diff --quiet && ! git ls-files --others --exclude-standard | grep -q .; then
echo "rm -rf $pwd/$(dirname $line)"
rm -rf $pwd/$(dirname $line)
else
blue "There are unstaged/untracked changes in $line"
fi
popd
fi
done
exit
fi


## for release
if [[ -e dependency-release.repos ]]; then
if [[ -e dependency-release.repos ]] && [[ $development -eq 0 ]]; then
echo "setup dependency from release"
vcs import < dependency-release.repos
exit
Expand All @@ -100,32 +124,30 @@ declare -A visited

for (( i=1; i<=count; i++ ))
do
files=$(find . -name "dependency.repos")
files=$(find . -name "dependency.repos" | awk '{print length, $0}' | sort -n | cut -d' ' -f2-)

flag=0
for line in ${files[@]}; do
if [[ -z ${visited[$line]} ]]; then
flag=1
visited[$line]=1

temp_file=$(mktemp)
echo "Temporary file created: $temp_file"
cat $line > $temp_file
if [[ ! -z $sed_cmd ]]; then
com="sed -i '$sed_cmd' $temp_file"
echo $com
eval $com
if [[ $? -ne 0 ]]; then
exit 1
fi
fi
blue "$(dirname $line)/ vcs import < $temp_file"
pushd $(dirname $line)
vcs import < $temp_file
popd
fi
if [[ -z ${visited[$line]} ]]; then
flag=1
visited[$line]=1

temp_file=$(mktemp)
echo "Temporary file created: $temp_file"
cat $line > $temp_file
if [[ $override -eq 1 ]]; then
override_file=${line/.repos/-override.repos}
if [[ -e $override_file ]]; then
cat $override_file | sed s/repositories:// >> $temp_file
fi
fi
blue "$(dirname $line)/ vcs import < $temp_file"
pushd $(dirname $line)
vcs import < $temp_file
popd
fi
done
if [[ $flag -eq 0 ]]; then
break
break
fi
done

0 comments on commit 6dc8fc0

Please sign in to comment.