50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
| name: VC gen
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|     paths-ignore:
 | |
|       - "**.md"
 | |
| 
 | |
| jobs:
 | |
|   build-vc:
 | |
|     runs-on: ubuntu-latest
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     env:
 | |
|       VREPO: github.com/vlang/vc.git
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - name: Build V
 | |
|         run: make
 | |
|       - name: Regenerate v.c and v_win.c
 | |
|         run: |
 | |
|           git config --global user.email "vlang-bot@users.noreply.github.com"
 | |
|           git config --global user.name "vlang-bot"
 | |
| 
 | |
|           COMMIT_HASH=$(git rev-parse --short HEAD)
 | |
|           COMMIT_MSG=$(git log -1 --oneline --pretty='%s' HEAD)
 | |
| 
 | |
|           rm -rf vc
 | |
|           git clone --depth=1 \
 | |
|             https://vlang-bot:${{ secrets.VLANG_BOT_SECRET }}@$VREPO
 | |
| 
 | |
|           rm -rf vc/v.c vc/v_win.c
 | |
| 
 | |
|           ./v -o vc/v.c -os cross cmd/v
 | |
|           ./v -o vc/v_win.c -os windows -cc msvc cmd/v
 | |
| 
 | |
|           sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v.c
 | |
|           sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v_win.c
 | |
| 
 | |
|           # ensure the C files are over 5000 lines long, as a safety measure
 | |
|           [ $(wc -l < vc/v.c) -gt 5000 ]
 | |
|           [ $(wc -l < vc/v_win.c) -gt 5000 ]
 | |
| 
 | |
|           git -C vc add v.c v_win.c
 | |
|           git -C vc commit -m "[v:master] $COMMIT_HASH - $COMMIT_MSG"
 | |
| 
 | |
|           # in case there are recent commits:
 | |
|           git -C vc pull --rebase origin master
 | |
|           git -C vc push          
 |