mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-31 08:29:33 +08:00 
			
		
		
		
	* build: implement version file update when release. * build: move file to correct path. * remove.
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Update Version File on Release
 | |
| 
 | |
| on:
 | |
|   release:
 | |
|     types: [created]
 | |
| 
 | |
| jobs:
 | |
|   update-version:
 | |
|     runs-on: ubuntu-latest
 | |
|     env:
 | |
|       TAG_VERSION: ${{ github.event.release.tag_name }} 
 | |
|     steps:
 | |
|       # Step 1: Checkout the original repository's code
 | |
|       - name: Checkout code
 | |
|         uses: actions/checkout@v4
 | |
|         with:
 | |
|           fetch-depth: 0
 | |
| 
 | |
|       # Step 2: Set up Git with official account
 | |
|       - name: Set up Git
 | |
|         run: |
 | |
|           git config user.name "github-actions[bot]"
 | |
|           git config user.email "github-actions[bot]@users.noreply.github.com"
 | |
| 
 | |
|       # Step 3: Check and delete existing tag
 | |
|       - name: Check and delete existing tag
 | |
|         run: |
 | |
|           if git rev-parse ${{ env.TAG_VERSION }} >/dev/null 2>&1; then
 | |
|             git tag -d ${{ env.TAG_VERSION }}
 | |
|             git push --delete origin ${{ env.TAG_VERSION }}
 | |
|           fi
 | |
| 
 | |
|       # Step 4: Update version file
 | |
|       - name: Update version file
 | |
|         run: |
 | |
|           echo "${{ env.TAG_VERSION }}" > version/version
 | |
| 
 | |
|       # Step 5: Commit and push changes
 | |
|       - name: Commit and push changes
 | |
|         env:
 | |
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | |
|         run: |
 | |
|           git add version/version
 | |
|           git commit -m "Update version to ${{ env.TAG_VERSION }}"
 | |
|           git push origin HEAD:${{ github.ref }}
 | |
| 
 | |
|       # Step 6: Create and push tag
 | |
|       - name: Create and push tag
 | |
|         env:
 | |
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | |
|         run: |
 | |
|           git tag ${{ env.TAG_VERSION }}
 | |
|           git push origin ${{ env.TAG_VERSION }}
 | |
| 
 | |
|       # Step 7: Find and Publish Draft Release
 | |
|       - name: Find and Publish Draft Release
 | |
|         uses: actions/github-script@v6
 | |
|         with:
 | |
|           github-token: ${{ secrets.GITHUB_TOKEN }}
 | |
|           script: |
 | |
|             // Get the list of releases
 | |
|             const releases = await github.rest.repos.listReleases({
 | |
|               owner: context.repo.owner,
 | |
|               repo: context.repo.repo
 | |
|             });
 | |
| 
 | |
|             // Find the draft release where the title and tag_name are the same
 | |
|             const draftRelease = releases.data.find(release => 
 | |
|               release.draft && release.name === release.tag_name
 | |
|             );
 | |
| 
 | |
|             if (draftRelease) {
 | |
|               // Publish the draft release using the release_id
 | |
|               await github.rest.repos.updateRelease({
 | |
|                 owner: context.repo.owner,
 | |
|                 repo: context.repo.repo,
 | |
|                 release_id: draftRelease.id,  // Use release_id
 | |
|                 draft: false
 | |
|               });
 | |
| 
 | |
|               core.info(`Draft Release ${draftRelease.tag_name} published successfully.`);
 | |
|             } else {
 | |
|               core.info("No matching draft release found.");
 | |
|             } |