Skip to content

Commit 7fce78f

Browse files
committed
ci: update upstream sync
1 parent 7dbd130 commit 7fce78f

File tree

2 files changed

+44
-135
lines changed

2 files changed

+44
-135
lines changed

.github/workflows/upstream-sync.yml

Lines changed: 44 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -17,91 +17,85 @@ jobs:
1717
with:
1818
fetch-depth: 0 # Get full history for commit count
1919
token: ${{ secrets.PAT_SERVICE_ACCOUNT }}
20+
ref: master
2021

2122
- name: Configure Git
2223
run: |
2324
git config --global user.name 'github-actions[bot]'
2425
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
25-
26-
- name: Add upstream remote
26+
27+
- name: Add upstream remote and fetch master
2728
env:
2829
GITHUB_TOKEN: ${{ secrets.PAT_SERVICE_ACCOUNT }}
2930
run: |
3031
git remote add upstream https://github.com/ggml-org/llama.cpp.git
31-
git fetch upstream master
32-
echo "Upstream fetch completed successfully"
32+
git fetch upstream master:refs/remotes/upstream/master --no-tags
3333
34-
- name: Fetch tags
34+
- name: Determine target commit
35+
id: target
3536
run: |
36-
git fetch upstream --tags
37-
echo "Tags fetch completed successfully"
37+
RELEASE_INFO=$(curl -s https://api.github.com/repos/ggml-org/llama.cpp/releases/latest)
38+
LATEST_TAG=$(echo "$RELEASE_INFO" | jq -r '.tag_name')
39+
LATEST_COMMIT=$(echo "$RELEASE_INFO" | jq -r '.target_commitish')
3840
39-
- name: Debug branch info
40-
run: |
41-
echo "Local branches:"
42-
git branch -a
43-
echo "Remote branches:"
44-
git ls-remote --heads origin
41+
if [ -n "$LATEST_TAG" ] && [ "$LATEST_TAG" != "null" ]; then
42+
echo "Latest release tag: $LATEST_TAG (will use upstream/master)"
43+
echo "target=upstream/master" >> $GITHUB_OUTPUT
44+
else
45+
echo "Using upstream/master as target"
46+
echo "target=upstream/master" >> $GITHUB_OUTPUT
47+
fi
4548
4649
- name: Sync master with latest release
4750
env:
4851
GITHUB_TOKEN: ${{ secrets.PAT_SERVICE_ACCOUNT }}
4952
run: |
50-
git checkout -B master
51-
echo "Checked out master branch"
52-
git reset --hard upstream/master
53-
echo "Reset master to upstream/master"
54-
git push origin master --force
55-
echo "Pushed master to origin"
56-
57-
- name: Debug before dev checkout
58-
run: |
59-
echo "Current branch:"
60-
git branch --show-current
53+
CURRENT_COMMIT=$(git rev-parse HEAD)
54+
TARGET="${{ steps.target.outputs.target }}"
55+
56+
echo "Resetting master to $TARGET"
57+
git reset --hard $TARGET
6158
59+
NEW_COMMIT=$(git rev-parse HEAD)
60+
61+
if [ "$CURRENT_COMMIT" = "$NEW_COMMIT" ]; then
62+
echo "No new changes found, master is already up to date"
63+
else
64+
echo "Pushing updates to master"
65+
git push origin HEAD:master --force
66+
echo "MASTER_COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV
67+
fi
68+
6269
- name: Rebase dev onto master
6370
env:
6471
GITHUB_TOKEN: ${{ secrets.PAT_SERVICE_ACCOUNT }}
6572
run: |
66-
# First check if dev branch exists locally
67-
if git show-ref --verify --quiet refs/heads/dev; then
68-
echo "Local dev branch exists, checking out"
69-
git checkout dev
70-
elif git show-ref --verify --quiet refs/remotes/origin/dev; then
71-
echo "Remote dev branch exists, creating local tracking branch"
72-
git checkout -b dev origin/dev
73-
else
74-
echo "No dev branch exists, creating from master"
75-
git checkout -b dev
76-
fi
77-
78-
echo "On branch $(git branch --show-current)"
73+
git fetch origin dev:refs/remotes/origin/dev --no-tags
74+
git checkout -b temp-dev origin/dev
7975
76+
echo "Attempting to rebase dev onto master..."
8077
if ! git rebase master; then
81-
echo "Rebase conflict detected, aborting"
78+
echo "⚠️ Rebase conflict detected, aborting"
8279
git rebase --abort
8380
exit 1
8481
fi
8582
86-
echo "Rebase successful, pushing to origin"
87-
git push origin dev --force-with-lease || git push origin dev --force
83+
echo "Rebase successful, force pushing to dev..."
84+
git push origin HEAD:dev --force
8885
8986
- name: Create version tag
9087
env:
9188
GITHUB_TOKEN: ${{ secrets.PAT_SERVICE_ACCOUNT }}
9289
run: |
9390
git checkout master
9491
COMMIT_COUNT=$(git rev-list --count HEAD)
95-
echo "Commit count: $COMMIT_COUNT"
96-
git checkout dev
92+
NEW_TAG="b${COMMIT_COUNT}"
9793
98-
# Check if tag already exists
99-
if git rev-parse "b${COMMIT_COUNT}" >/dev/null 2>&1; then
100-
echo "Tag b${COMMIT_COUNT} already exists, force updating"
101-
git tag -f "b${COMMIT_COUNT}"
94+
if git ls-remote --tags origin | grep -q "refs/tags/${NEW_TAG}$"; then
95+
echo "Tag $NEW_TAG already exists on remote, skipping tag creation"
10296
else
103-
echo "Creating new tag b${COMMIT_COUNT}"
104-
git tag "b${COMMIT_COUNT}"
97+
echo "Creating new tag: $NEW_TAG"
98+
git tag "$NEW_TAG"
99+
git push origin "$NEW_TAG"
100+
echo "Successfully created and pushed tag $NEW_TAG"
105101
fi
106-
107-
git push origin "b${COMMIT_COUNT}" --force

.github/workflows/upstream-sync2.yml

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)