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