Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 38 additions & 38 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ function set_git_safe_dir {
exit 1
fi

echo "Add repo to safe.directory: $1"
echo "$ git config --global --add safe.directory $1"
git config --global --add safe.directory $1
echo "Add repo to safe.directory: \"$1\""
echo "$ git config --global --add safe.directory \"$1\""
git config --global --add safe.directory "$1"
}

# Setup GIT Remote URL with github token
Expand All @@ -59,20 +59,20 @@ function update_github_token {
# Clone ELL
function clone_ell {
# remove if already exist
DEST_DIR=$1
rm -rf $DEST_DIR
git clone --depth=1 https://git.kernel.org/pub/scm/libs/ell/ell $DEST_DIR
cd $DEST_DIR
DEST_DIR="$1"
rm -rf "$DEST_DIR"
git clone --depth=1 https://git.kernel.org/pub/scm/libs/ell/ell "$DEST_DIR"
cd "$DEST_DIR"
git log -1 --format='%H'
}

# Clone BlueZ
function clone_bluez {
# remove if already exist
DEST_DIR=$1
rm -rf $DEST_DIR
git clone --depth=1 https://git.kernel.org/pub/scm/bluetooth/bluez $DEST_DIR
cd $DEST_DIR
DEST_DIR="$1"
rm -rf "$DEST_DIR"
git clone --depth=1 https://git.kernel.org/pub/scm/bluetooth/bluez "$DEST_DIR"
cd "$DEST_DIR"
git log -1 --format='%H'
}

Expand Down Expand Up @@ -109,30 +109,30 @@ case $TASK in
echo "Task: Sync Repo"
# requires GITHUB_TOKEN
check_github_token
set_git_safe_dir $GITHUB_WORKSPACE
set_git_safe_dir "$GITHUB_WORKSPACE"
# calling sync_repo
# param: upstream_repo
# param: upstream_branch
# param: origin_branch
# param: workflow
/sync_repo.sh $UPSTREAM_REPO $UPSTREAM_BRANCH $ORIGIN_BRANCH $WORKFLOW
/sync_repo.sh "$UPSTREAM_REPO" "$UPSTREAM_BRANCH" "$ORIGIN_BRANCH" "$WORKFLOW"
;;
cleanup|Cleanup|CLENAUP)
echo "Task: Clean Up PR"
# requires GITHUB_TOKEN
check_github_token
/cleanup_pr.py $GITHUB_REPOSITORY
/cleanup_pr.py "$GITHUB_REPOSITORY"
;;
patchwork|Patchwork|PATCHWORK)
echo "Task: Sync Patchwork"
# required tokens
check_github_token
check_email_token
check_patchwork_token
set_git_safe_dir $GITHUB_WORKSPACE
update_github_token $GITHUB_REPOSITORY
set_git_safe_dir "$GITHUB_WORKSPACE"
update_github_token "$GITHUB_REPOSITORY"
# calling sync_patchwork.py
/sync_patchwork.py -c /config.json -b $WORKFLOW -s $GITHUB_WORKSPACE $SPACE $GITHUB_REPOSITORY
/sync_patchwork.py -c /config.json -b "$WORKFLOW" -s "$GITHUB_WORKSPACE" "$SPACE" "$GITHUB_REPOSITORY"
;;
ci|CI|Ci)
echo "Task: CI"
Expand All @@ -146,34 +146,34 @@ case $TASK in
echo "Target PR: $PR"

# For CI, assume that source is cloned under src
set_git_safe_dir $GITHUB_WORKSPACE/$BASE_DIR/src

clone_ell $GITHUB_WORKSPACE/$BASE_DIR/ell
set_git_safe_dir $GITHUB_WORKSPACE/$BASE_DIR/ell

mkdir $GITHUB_WORKSPACE/$BASE_DIR/patch

if [ $SPACE == "kernel" ]; then
clone_bluez $GITHUB_WORKSPACE/$BASE_DIR/bluez
set_git_safe_dir $GITHUB_WORKSPACE/$BASE_DIR/bluez
/ci.py -c /config.json -z $GITHUB_WORKSPACE/$BASE_DIR/bluez \
-e $GITHUB_WORKSPACE/$BASE_DIR/ell \
-k $GITHUB_WORKSPACE/$BASE_DIR/src \
-p $GITHUB_WORKSPACE/$BASE_DIR/patch \
kernel $GITHUB_REPOSITORY $PR
elif [ $SPACE == "user" ]; then
/ci.py -c /config.json -z $GITHUB_WORKSPACE/$BASE_DIR/src \
-e $GITHUB_WORKSPACE/$BASE_DIR/ell \
-p $GITHUB_WORKSPACE/$BASE_DIR/patch \
user $GITHUB_REPOSITORY $PR
set_git_safe_dir "$GITHUB_WORKSPACE/$BASE_DIR/src"

clone_ell "$GITHUB_WORKSPACE/$BASE_DIR/ell"
set_git_safe_dir "$GITHUB_WORKSPACE/$BASE_DIR/ell"

mkdir "$GITHUB_WORKSPACE/$BASE_DIR/patch"

if [ "$SPACE" == "kernel" ]; then
clone_bluez "$GITHUB_WORKSPACE/$BASE_DIR/bluez"
set_git_safe_dir "$GITHUB_WORKSPACE/$BASE_DIR/bluez"
/ci.py -c /config.json -z "$GITHUB_WORKSPACE/$BASE_DIR/bluez" \
-e "$GITHUB_WORKSPACE/$BASE_DIR/ell" \
-k "$GITHUB_WORKSPACE/$BASE_DIR/src" \
-p "$GITHUB_WORKSPACE/$BASE_DIR/patch" \
kernel "$GITHUB_REPOSITORY" "$PR"
elif [ "$SPACE" == "user" ]; then
/ci.py -c /config.json -z "$GITHUB_WORKSPACE/$BASE_DIR/src" \
-e "$GITHUB_WORKSPACE/$BASE_DIR/ell" \
-p "$GITHUB_WORKSPACE/$BASE_DIR/patch" \
user "$GITHUB_REPOSITORY" "$PR"
else
echo "Unknown SPACE: $SPACE"
exit 1
fi
;;
*)
echo "Unknown TASK: $TASK"
eixt 1
exit 1
;;
esac

Expand Down
40 changes: 20 additions & 20 deletions sync_repo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,23 @@ ORIGIN_BRANCH=$3
WORKFLOW_BRANCH=$4

echo ">>> Setup repo"
echo "$ git checkout $ORIGIN_BRANCH"
git checkout $ORIGIN_BRANCH
echo "$ git remote set-url origin $GITHUB_REPOSITORY"
echo "$ git checkout \"$ORIGIN_BRANCH\""
git checkout "$ORIGIN_BRANCH"
echo "$ git remote set-url origin \"$GITHUB_REPOSITORY\""
git remote set-url origin "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY"
echo "$ git remote add upstream $UPSTREAM_REPO"
echo "$ git remote add upstream \"$UPSTREAM_REPO\""
git remote add upstream "$UPSTREAM_REPO"
echo "$ git fetch upstream $UPSTREAM_BRANCH"
git fetch upstream $UPSTREAM_BRANCH
echo "$ git fetch upstream \"$UPSTREAM_BRANCH\""
git fetch upstream "$UPSTREAM_BRANCH"

echo ">>> Check Origin and Upstream"
ORIGIN_HEAD=$(git log -1 --format=%H origin/$ORIGIN_BRANCH)
echo "ORIGIN_HEAD: $ORIGIN_HEAD"
UPSTREAM_HEAD=$(git log -1 --format=%H upstream/$UPSTREAM_BRANCH)
echo "UPSTREAM_HEAD: $UPSTREAM_HEAD"
ORIGIN_HEAD=$(git log -1 --format=%H "origin/$ORIGIN_BRANCH")
echo "ORIGIN_HEAD: \"$ORIGIN_HEAD\""
UPSTREAM_HEAD=$(git log -1 --format=%H "upstream/$UPSTREAM_BRANCH")
echo "UPSTREAM_HEAD: \"$UPSTREAM_HEAD\""

if [ "$ORIGIN_HEAD" = "$UPSTREAM_HEAD" ]; then
echo "Repos are already synched. Eixt..."
echo "Repos are already synched. Exit..."
exit 0
fi
echo "Repos are NOT synced. Need to merge..."
Expand All @@ -46,13 +46,13 @@ git push -f origin "refs/tags/*"

echo ">>> Rebase workflow commits onto updated master"
# Fetch the updated origin to get the new master ref
echo "$ git fetch origin $ORIGIN_BRANCH $WORKFLOW_BRANCH"
git fetch origin $ORIGIN_BRANCH $WORKFLOW_BRANCH
echo "$ git fetch origin \"$ORIGIN_BRANCH\" \"$WORKFLOW_BRANCH\""
git fetch origin "$ORIGIN_BRANCH" "$WORKFLOW_BRANCH"

# Find workflow-only commits: those that touch .github/ and are unique to
# the workflow branch (not in master). We filter by path to avoid picking
# up old Bluetooth commits that may linger if the branches had diverged.
WORKFLOW_COMMITS=$(git log --reverse --format=%H origin/$ORIGIN_BRANCH..origin/$WORKFLOW_BRANCH -- .github/)
WORKFLOW_COMMITS=$(git log --reverse --format=%H "origin/$ORIGIN_BRANCH..origin/$WORKFLOW_BRANCH" -- .github/)
COMMIT_COUNT=$(echo "$WORKFLOW_COMMITS" | grep -c . || true)
echo "Found $COMMIT_COUNT workflow commit(s) to rebase"

Expand All @@ -61,19 +61,19 @@ if [ "$COMMIT_COUNT" -eq 0 ]; then
exit 1
fi

echo "$ git checkout -b $WORKFLOW_BRANCH origin/$ORIGIN_BRANCH"
git checkout -b $WORKFLOW_BRANCH origin/$ORIGIN_BRANCH
echo "$ git checkout -b \"$WORKFLOW_BRANCH\" \"origin/$ORIGIN_BRANCH\""
git checkout -b "$WORKFLOW_BRANCH" "origin/$ORIGIN_BRANCH"
echo "$ git branch"
git branch

for SHA in $WORKFLOW_COMMITS; do
SUBJECT=$(git log -1 --format=%s $SHA)
SUBJECT=$(git log -1 --format=%s "$SHA")
echo "Cherry-picking: $SHA ($SUBJECT)"
git cherry-pick $SHA
git cherry-pick "$SHA"
done

echo "$ git push -f origin $WORKFLOW_BRANCH"
git push -f origin $WORKFLOW_BRANCH
echo "$ git push -f origin \"$WORKFLOW_BRANCH\""
git push -f origin "$WORKFLOW_BRANCH"

echo ">>> Done Exit"
exit 0