Update github-release.yml
This commit is contained in:
		
							parent
							
								
									00794c41e6
								
							
						
					
					
						commit
						4c266aeb42
					
				
							
								
								
									
										36
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							| @ -2,8 +2,8 @@ name: Create new release | |||||||
| 
 | 
 | ||||||
| on: | on: | ||||||
|   schedule: |   schedule: | ||||||
|     - cron: '1 0 * * *'  # Runs nightly |     # Runs "At 00:01 every night" (UTC) | ||||||
|   workflow_dispatch: |     - cron: '1 0 * * *' | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   create-new-release: |   create-new-release: | ||||||
| @ -13,33 +13,17 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - name: Checkout code |       - name: Checkout code | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| 
 |  | ||||||
|       - name: Parse CHANGELOG.md for yesterday's entries and create a new release |       - name: Parse CHANGELOG.md for yesterday's entries and create a new release | ||||||
|         env: |         env: | ||||||
|           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|         run: | |         run: | | ||||||
|           YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d) |           YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d) | ||||||
| 
 |           YESTERDAY_CHANGELOG_NOTES=$(awk '/^## '"$YESTERDAY"'/ {f=1; next} f && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {f=0} f && !/^## / {print}' CHANGELOG.md) | ||||||
|           # Extract entries for only yesterday |            | ||||||
|           awk -v date="## $YESTERDAY" ' |           if [ ${#YESTERDAY_CHANGELOG_NOTES} -gt 10000 ]; then | ||||||
|             $0 ~ date {found=1; next}  |             echo "Changelog is too large, saving to file..." | ||||||
|             found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {found=0}  |             echo "$YESTERDAY_CHANGELOG_NOTES" > changelog_tmp.md | ||||||
|             found {print} |             gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md --latest | ||||||
|           ' CHANGELOG.md > changelog_tmp.md |           elif [ -n "$YESTERDAY_CHANGELOG_NOTES" ]; then | ||||||
| 
 |             gh release create "$YESTERDAY" -t "$YESTERDAY" -n "$YESTERDAY_CHANGELOG_NOTES" --latest | ||||||
|           if [ ! -s changelog_tmp.md ]; then |  | ||||||
|             echo "No changes found for $YESTERDAY, skipping release." |  | ||||||
|             exit 0 |  | ||||||
|           fi |           fi | ||||||
| 
 |  | ||||||
|           CHANGELOG_SIZE=$(wc -c < changelog_tmp.md) |  | ||||||
|           echo "Changelog size: $CHANGELOG_SIZE bytes" |  | ||||||
| 
 |  | ||||||
|           if [ "$CHANGELOG_SIZE" -gt 10000 ]; then |  | ||||||
|             echo "WARNING: Changelog too large, cropping to last 10,000 bytes..." |  | ||||||
|             tail -c 10000 changelog_tmp.md > changelog_cropped.md |  | ||||||
|             mv changelog_cropped.md changelog_tmp.md |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|           echo "Creating GitHub release for $YESTERDAY..." |  | ||||||
|           gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CanbiZ
						CanbiZ