Skip to content

Commit 0b6db41

Browse files
committed
fix: remove git pull --rebase step and improve release handling in daily-benchmark.yml
- Removed unnecessary git pull --rebase before pushing changes to streamline the workflow. - Enhanced logic for checking and updating existing releases, ensuring proper handling of release existence and error logging. - Improved clarity in console logs for better debugging and tracking of release updates.
1 parent 5a8d317 commit 0b6db41

File tree

1 file changed

+34
-23
lines changed

1 file changed

+34
-23
lines changed

.github/workflows/daily-benchmark.yml

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,6 @@ jobs:
233233
git config --local user.name "GitHub Action"
234234
git add README.md previous-benchmark-results.json
235235
git commit -m "📊 Update benchmark results - $(date '+%Y-%m-%d') [${{ needs.analysis.outputs.tag-name }}]"
236-
git pull --rebase origin main
237236
git push
238237
239238
- name: Create or update GitHub release
@@ -253,30 +252,42 @@ jobs:
253252
console.log('Could not read release description file:', error.message);
254253
}
255254
256-
if (releaseExists) {
257-
console.log(`Updating existing release with tag: ${tagName}`);
255+
// Always try to get existing release first, regardless of tag existence
256+
let releaseExists = false;
257+
let existingRelease = null;
258258
259-
try {
260-
const { data: release } = await github.rest.repos.getReleaseByTag({
261-
owner: context.repo.owner,
262-
repo: context.repo.repo,
263-
tag: tagName
264-
});
265-
266-
await github.rest.repos.updateRelease({
267-
owner: context.repo.owner,
268-
repo: context.repo.repo,
269-
release_id: release.id,
270-
name: releaseName,
271-
body: releaseBody,
272-
prerelease: false
273-
});
274-
275-
console.log('Successfully updated existing release');
276-
} catch (error) {
277-
console.log('Release tag exists but could not update release:', error.message);
278-
console.log('This might be expected if it is a lightweight tag without a release');
259+
try {
260+
const { data: release } = await github.rest.repos.getReleaseByTag({
261+
owner: context.repo.owner,
262+
repo: context.repo.repo,
263+
tag: tagName
264+
});
265+
existingRelease = release;
266+
releaseExists = true;
267+
console.log(`Found existing release with tag: ${tagName}`);
268+
} catch (error) {
269+
if (error.status === 404) {
270+
console.log(`No existing release found for tag: ${tagName}`);
271+
releaseExists = false;
272+
} else {
273+
console.log('Error checking for existing release:', error.message);
274+
throw error;
279275
}
276+
}
277+
278+
if (releaseExists && existingRelease) {
279+
console.log(`Updating existing release with tag: ${tagName}`);
280+
281+
await github.rest.repos.updateRelease({
282+
owner: context.repo.owner,
283+
repo: context.repo.repo,
284+
release_id: existingRelease.id,
285+
name: releaseName,
286+
body: releaseBody,
287+
prerelease: false
288+
});
289+
290+
console.log('Successfully updated existing release');
280291
} else {
281292
console.log(`Creating new release with tag: ${tagName}`);
282293

0 commit comments

Comments
 (0)