mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 03:13:15 +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.");
 | 
						|
            } |