mirror of
				https://github.com/RetroDECK/RetroDECK.git
				synced 2025-04-10 19:15:12 +00:00 
			
		
		
		
	 e527f85ca6
			
		
	
	
		e527f85ca6
		
	
	
	
	
		
			
			Now information can be read from the general server environment to inject into the flatpak manifest
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: cooker-selfhosted
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|      - cooker*
 | |
|     paths:
 | |
|      - '.github/workflows/**'
 | |
|      - 'emu-configs/**'
 | |
|      - 'es-configs/**'
 | |
|      - 'rd-submodules/**'
 | |
|      - '*.sh'
 | |
|      - 'net.retrodeck.retrodeck.yml'
 | |
|      - 'net.retrodeck.retrodeck.appdata.xml'
 | |
|   pull_request: 
 | |
|     branches:
 | |
|      - cooker*
 | |
| 
 | |
|   workflow_dispatch:
 | |
| 
 | |
| 
 | |
| jobs:
 | |
| 
 | |
|   Building_RetroDECK:
 | |
|     runs-on: self-hosted
 | |
|     steps:
 | |
| 
 | |
|       # Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
 | |
|       - name: Remove stuck mounts
 | |
|         run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
 | |
|         continue-on-error: true
 | |
|     
 | |
|       - uses: actions/checkout@v3
 | |
| 
 | |
|       - name: Generate build ID
 | |
|         run: |
 | |
|           word1=$(curl -s https://random-word-api.herokuapp.com/word?length=5 | tr -d '[]"')
 | |
|           capitalized_word1="$(tr '[:lower:]' '[:upper:]' <<< ${word1:0:1})${word1:1}"
 | |
|           word2=$(curl -s https://random-word-api.herokuapp.com/word?length=5 | tr -d '[]"')
 | |
|           capitalized_word2="$(tr '[:lower:]' '[:upper:]' <<< ${word2:0:1})${word2:1}"
 | |
|           result=$capitalized_word1$capitalized_word2
 | |
|           echo $result > ${GITHUB_WORKSPACE}/buildid
 | |
|           ls -lah ${GITHUB_WORKSPACE}         # DEBUG
 | |
|           cat ${GITHUB_WORKSPACE}/buildid     # DEBUG
 | |
|           echo "buildid=$result" >> $GITHUB_ENV
 | |
|           echo "VersionID is $result"          
 | |
| 
 | |
|       - name: Initialize environment
 | |
|         run: |
 | |
|           git pull
 | |
|           git submodule init
 | |
|           git submodule update
 | |
|           sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
 | |
|           flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
 | |
|           flatpak install --user -y --noninteractive \
 | |
|           org.kde.Sdk//6.3 \
 | |
|           org.kde.Platform//6.3 \
 | |
|           org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \
 | |
|           io.qt.qtwebengine.BaseApp/x86_64/6.3 \
 | |
|           org.freedesktop.Sdk.Extension.llvm13 \
 | |
|           org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
 | |
|           runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
 | |
|           /bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks          
 | |
| 
 | |
|       - name: Build flatpak
 | |
|         run: |
 | |
|           git config --global protocol.file.allow always
 | |
|           mkdir -vp ${GITHUB_WORKSPACE}/local
 | |
|           mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
 | |
|           flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml          
 | |
| 
 | |
|       - name: Create Artifact for flathub
 | |
|         run: | 
 | |
|           tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
 | |
|           hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
 | |
|           echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
 | |
|           mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
 | |
|         continue-on-error: true
 | |
| 
 | |
|       - name: Create Bundle
 | |
|         run: |
 | |
|           flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck          
 | |
| 
 | |
|       - name: Set environment variable with current branch name
 | |
|         run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
 | |
| 
 | |
|       - name: Publish the flatpak in a new cooker release
 | |
|         uses: ncipollo/release-action@v1
 | |
|         with:
 | |
|           tag: "${{ env.GITHUB_REF_SLUG }}-${{ env.buildid }}"
 | |
|           body: |
 | |
|             # Release Notes (Cooker)
 | |
|             This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.            
 | |
|       
 | |
|             Cooker channel is provided for the community to test fixes and explore new functionality.
 | |
|             Please DO NOT open issues or ask support on this build.
 | |
| 
 | |
|           artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
 | |
|           allowUpdates: true
 | |
|           #prerelease: true
 | |
|           makeLatest: true
 | |
|           #draft: true
 | |
|           token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
 | |
|           repo: RetroDECK-cooker
 | |
|         continue-on-error: true
 | |
| 
 | |
|       # In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
 | |
|       - name: Upload RetroDECK.flatpak
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: retrodeck-flatpak
 | |
|           path: RetroDECK.flatpak
 | |
|         continue-on-error: true
 |