mirror of
				https://github.com/smartfrigde/armcord.git
				synced 2024-08-14 23:56:58 +00:00 
			
		
		
		
	Add the stable release workflow onto dev
This commit is contained in:
		
							parent
							
								
									af84a2a625
								
							
						
					
					
						commit
						13eb57d17d
					
				
					 1 changed files with 196 additions and 0 deletions
				
			
		
							
								
								
									
										196
									
								
								.github/workflows/stable.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								.github/workflows/stable.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,196 @@ | |||
| name: Release build | ||||
| on:  | ||||
|   push: | ||||
|     branches: | ||||
|       - stable | ||||
| 
 | ||||
| env: | ||||
|   FORCE_COLOR: true | ||||
| 
 | ||||
| jobs: | ||||
|     build-linux: | ||||
|         runs-on: ubuntu-latest | ||||
| 
 | ||||
|         steps: | ||||
|             - uses: actions/setup-node@v3 | ||||
|               with: | ||||
|                 node-version: '18' | ||||
| 
 | ||||
|             - name: Checkout code | ||||
|               uses: actions/checkout@v2 | ||||
| 
 | ||||
|             - name: Install Node dependencies | ||||
|               run: npm install | ||||
| 
 | ||||
|             - name: Install Electron-Builder | ||||
|               run: npm install -g electron-builder | ||||
| 
 | ||||
|             - name: Build | ||||
|               run: npm run build && electron-builder --linux && electron-builder --arm64 --linux && electron-builder --armv7l --linux | ||||
|               env: | ||||
|                 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|             - name: List all files in the dist directory | ||||
|               run: ls -l dist | ||||
|             - name: Delete unpacked builds | ||||
|               run: rm -rf dist/linux-unpacked && rm -rf dist/linux-arm64-unpacked && rm -rf dist/linux-armv7l-unpacked | ||||
|             - name: Upload artifact | ||||
|               uses: actions/upload-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordLinux | ||||
|                   path: dist/ | ||||
| 
 | ||||
| 
 | ||||
|     build-mac: | ||||
|         runs-on: macos-latest | ||||
| 
 | ||||
|         steps: | ||||
|             - uses: actions/setup-node@v3 | ||||
|               with: | ||||
|                 node-version: '18' | ||||
| 
 | ||||
|             - name: Checkout code | ||||
|               uses: actions/checkout@v2 | ||||
| 
 | ||||
|             - name: Install Node dependencies | ||||
|               run: npm install | ||||
|                | ||||
|             - name: Install Electron-Builder | ||||
|               run: npm install -g electron-builder | ||||
| 
 | ||||
|             - name: Build | ||||
|               run: npm run build && electron-builder --macos | ||||
|               env: | ||||
|                 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|             - name: List all files in the dist directory | ||||
|               run: ls -l dist | ||||
|             - name: Delete unpacked builds | ||||
|               run: rm -rf dist/macos-unpacked | ||||
| 
 | ||||
|             - name: Upload artifact | ||||
|               uses: actions/upload-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordMac | ||||
|                   path: dist/ | ||||
| 
 | ||||
|     build-windows: | ||||
|         runs-on: windows-latest | ||||
| 
 | ||||
|         steps: | ||||
|             - uses: actions/setup-node@v3 | ||||
|               with: | ||||
|                 node-version: '18' | ||||
| 
 | ||||
|             - name: Checkout code | ||||
|               uses: actions/checkout@v2 | ||||
| 
 | ||||
|             - name: Install Node dependencies | ||||
|               run: npm install | ||||
|                | ||||
|             - name: Install Electron-Builder | ||||
|               run: npm install -g electron-builder | ||||
| 
 | ||||
|             - name: Build | ||||
|               run: npm run build && electron-builder --windows | ||||
|               env: | ||||
|                 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|             - name: Delete unpacked builds | ||||
|               run: Remove-Item -LiteralPath ".\dist\win-unpacked" -Force -Recurse | ||||
|             - name: Upload artifact | ||||
|               uses: actions/upload-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordWindows | ||||
|                   path: dist/ | ||||
|              | ||||
| 
 | ||||
|     release: | ||||
|         runs-on: ubuntu-latest | ||||
|         needs: [build-linux, build-mac, build-windows] | ||||
| 
 | ||||
|         steps: | ||||
|             - uses: actions/download-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordMac | ||||
|                   path: macos | ||||
| 
 | ||||
|             - uses: actions/download-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordWindows | ||||
|                   path: windows | ||||
| 
 | ||||
|             - uses: actions/download-artifact@v2 | ||||
|               with: | ||||
|                   name: ArmCordLinux | ||||
|                   path: linux | ||||
|             - name: ls | ||||
|               run: ls | ||||
|             - name: Delete unwanted directories | ||||
|               run: rm -rf {linux,macos,windows}/*/ | ||||
|                    rm -rf {linux,macos,windows}/.icon* | ||||
|                    rm -rf {linux,macos,windows}/builder-debug.yml | ||||
|             - name: ls dirs | ||||
|               run: ls linux && ls macos && ls windows  | ||||
|             - name: Get some values needed for the release | ||||
|               id: vars | ||||
|               shell: bash | ||||
|               run: | | ||||
|                 echo "::set-output name=releaseTag::$(git describe --tags --abbrev=0)" | ||||
| 
 | ||||
|             - uses: dev-drprasad/delete-tag-and-release@v0.2.0 | ||||
|               with: | ||||
|                 delete_release: true | ||||
|                 tag_name: v3.0.6 | ||||
|               env: | ||||
|                 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|             - name: Create Release | ||||
|               uses: actions/github-script@v2 | ||||
|               with: | ||||
|                 github-token: ${{secrets.GITHUB_TOKEN}} | ||||
|                 script: | | ||||
|                   console.log('environment', process.versions); | ||||
|                    | ||||
|                   const fs = require('fs').promises; | ||||
|                    | ||||
|                   const { repo: { owner, repo }, sha } = context; | ||||
|                   console.log({ owner, repo, sha }); | ||||
| 
 | ||||
|                   const release = await github.repos.createRelease({ | ||||
|                     owner, repo, | ||||
|                     tag_name: process.env.releaseTag, | ||||
|                     draft: true, | ||||
|                     target_commitish: sha | ||||
|                   }); | ||||
| 
 | ||||
|                   console.log('created release', { release }); | ||||
|                | ||||
|                   for (let file of await fs.readdir('linux')) { | ||||
|                     // do whatever filtering you want here, I'm just uploading all the files | ||||
|                     console.log('uploading', file); | ||||
|                     await github.repos.uploadReleaseAsset({ | ||||
|                       owner, repo, | ||||
|                       release_id: release.data.id, | ||||
|                       name: file, | ||||
|                       data: await fs.readFile(`./linux/${file}`) | ||||
|                     });     | ||||
|                   } | ||||
|                   for (let file of await fs.readdir('windows')) { | ||||
|                     // do whatever filtering you want here, I'm just uploading all the files | ||||
|                     console.log('uploading', file); | ||||
|                     await github.repos.uploadReleaseAsset({ | ||||
|                       owner, repo, | ||||
|                       release_id: release.data.id, | ||||
|                       name: file, | ||||
|                       data: await fs.readFile(`./windows/${file}`) | ||||
|                     });     | ||||
|                   } | ||||
|                   for (let file of await fs.readdir('macos')) { | ||||
|                     // do whatever filtering you want here, I'm just uploading all the files | ||||
|                     console.log('uploading', file); | ||||
|                     await github.repos.uploadReleaseAsset({ | ||||
|                       owner, repo, | ||||
|                       release_id: release.data.id, | ||||
|                       name: file, | ||||
|                       data: await fs.readFile(`./macos/${file}`) | ||||
|                     });     | ||||
|                   } | ||||
|               env: | ||||
|                 releaseTag: ${{ steps.vars.outputs.releaseTag }} | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue