60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Trigger nightly build
 | |
| 
 | |
| on:
 | |
|   schedule:
 | |
|     # * is a special character in YAML, so you have to quote this string
 | |
|     - cron:  '30 15 * * *'
 | |
|   workflow_dispatch:
 | |
| 
 | |
| jobs:
 | |
|   check_date:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: Check latest commit
 | |
|     outputs:
 | |
|       should_run: ${{ steps.should_run.outputs.should_run }}
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - name: print latest_commit
 | |
|         run: echo ${{ github.sha }}
 | |
|       - id: should_run
 | |
|         continue-on-error: true
 | |
|         name: check latest commit is less than a day
 | |
|         if: ${{ github.event_name == 'schedule' }}
 | |
|         run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "should_run=false" >> $GITHUB_OUTPUT
 | |
| 
 | |
|   trigger-nightly:
 | |
|     needs: check_date
 | |
|     if: ${{ needs.check_date.outputs.should_run != 'false' }}
 | |
|     name: Push tag for nightly build
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: 'Checkout'
 | |
|         uses: actions/checkout@v4
 | |
|         with:
 | |
|           token: ${{ secrets.NIGHTLY_BUILD_GH_TOKEN }}
 | |
|           fetch-depth: 0
 | |
|       -
 | |
|         name: 'Push new tag'
 | |
|         run: |
 | |
|           git config user.name "${GITHUB_ACTOR}"
 | |
|           git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
 | |
| 
 | |
|           # A previous release was created using a lightweight tag
 | |
|           # git describe by default includes only annotated tags
 | |
|           # git describe --tags includes lightweight tags as well
 | |
|           DESCRIBE=`git tag -l --sort=-v:refname | grep -v nightly | head -n 1`
 | |
|           MAJOR_VERSION=`echo $DESCRIBE | awk '{split($0,a,"."); print a[1]}'`
 | |
|           MINOR_VERSION=`echo $DESCRIBE | awk '{split($0,a,"."); print a[2]}'`
 | |
|           # MINOR_VERSION="$((${MINOR_VERSION} + 1))"
 | |
|           TAG="${MAJOR_VERSION}.${MINOR_VERSION}.0-nightly.$(date +'%Y%m%d')"
 | |
|           git tag -a $TAG -m "$TAG: nightly build"
 | |
|           git push origin $TAG
 | |
|       - name: 'Clean up nightly releases'
 | |
|         uses: dev-drprasad/delete-older-releases@v0.3.3
 | |
|         with:
 | |
|           keep_latest: 2
 | |
|           delete_tags: true
 | |
|           delete_tag_pattern: nightly
 | |
|         env:
 | |
|           GITHUB_TOKEN: ${{ secrets.NIGHTLY_BUILD_GH_TOKEN }} |