actions: generate prebuilt binaries every commit (#6617)
							parent
							
								
									988221d87b
								
							
						
					
					
						commit
						a45481baa3
					
				|  | @ -0,0 +1,147 @@ | |||
| name: Build binary artifacts | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|       - master | ||||
| 
 | ||||
| jobs: | ||||
|   build-linux: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         compiler: [gcc] | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: Compile | ||||
|       env: | ||||
|         CC: ${{ matrix.compiler }} | ||||
|       run: make | ||||
|     - name: Create artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: linux | ||||
|         path: | | ||||
|           . | ||||
|           !./.git | ||||
|           !./.ctags.d | ||||
|           !./.github | ||||
|           !./vc | ||||
|           !./v_old | ||||
|     - name: Create binary only artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: linux-binary | ||||
|         path: ./v | ||||
| 
 | ||||
|   build-macos: | ||||
|     runs-on: macos-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         compiler: [clang] | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: Compile | ||||
|       env: | ||||
|         CC: ${{ matrix.compiler }} | ||||
|       run: make | ||||
|     - name: Create artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: macos | ||||
|         path: | | ||||
|           . | ||||
|           !./.git | ||||
|           !./.ctags.d | ||||
|           !./.github | ||||
|           !./vc | ||||
|           !./v_old | ||||
|     - name: Create binary only artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: macos-binary | ||||
|         path: ./v | ||||
| 
 | ||||
|   build-windows: | ||||
|     runs-on: windows-latest | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - uses: msys2/setup-msys2@v2 | ||||
|     - name: Compile | ||||
|       run: ./make.bat | ||||
|     - name: Create artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: windows | ||||
|         path: | | ||||
|           . | ||||
|           !./.git | ||||
|           !./.ctags.d | ||||
|           !./.github | ||||
|           !./vc | ||||
|           !./v_old | ||||
|     - name: Create binary only artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: windows-binary | ||||
|         path: ./v.exe | ||||
|          | ||||
|   release: | ||||
|     name: Create Github Release | ||||
|     needs: [build-linux, build-windows, build-macos] | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: Remove old tag | ||||
|       uses: dev-drprasad/delete-tag-and-release@v0.1.2 | ||||
|       with: | ||||
|         delete_release: true | ||||
|         tag_name: latest-commit | ||||
|       env: | ||||
|         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|     - name: Create Release | ||||
|       id: create_release | ||||
|       uses: ncipollo/release-action@v1 | ||||
|       with: | ||||
|         token: ${{ secrets.GITHUB_TOKEN }} | ||||
|         tag: latest-commit | ||||
|         name: Prebuilt binaries of the latest commit | ||||
|         commit: ${{ github.sha }} | ||||
|         draft: false | ||||
|         prerelease: true | ||||
|    | ||||
|   publish: | ||||
|     needs: [release] | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         version: [linux, macos, windows] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: Fetch artifacts | ||||
|       uses: actions/download-artifact@v1 | ||||
|       with: | ||||
|         name: ${{ matrix.version }} | ||||
|         path: ./${{ matrix.version }} | ||||
|     - name: Build | ||||
|       run: zip -r ${{ matrix.version }}.zip ./${{ matrix.version }}/* | ||||
|     - name: Get release | ||||
|       id: get_release_info | ||||
|       uses: leahlundqvist/get-release@v1.3.1 | ||||
|       env: | ||||
|         GITHUB_TOKEN: ${{ github.token }} | ||||
|       with: | ||||
|         tag_name: latest-commit | ||||
|     - name: Upload Release Asset | ||||
|       id: upload-release-asset  | ||||
|       uses: actions/upload-release-asset@v1.0.1 | ||||
|       env: | ||||
|         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|       with: | ||||
|         upload_url: ${{ steps.get_release_info.outputs.upload_url }} | ||||
|         asset_path: ./${{ matrix.version }}.zip | ||||
|         asset_name: ${{ matrix.version }}.zip | ||||
|         asset_content_type: application/zip | ||||
		Loading…
	
		Reference in New Issue