mirror of
				https://github.com/RetroDECK/RetroDECK.git
				synced 2025-04-10 19:15:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: "Build main"
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|      - main
 | |
|     paths:
 | |
|      - '.github/workflows/**'
 | |
|      - 'automation_tools/**'
 | |
|      - 'emu-configs/**'
 | |
|      - 'es-configs/**'
 | |
|      - 'functions/**'
 | |
|      - 'rd-submodules/**'
 | |
|      - '*.sh'
 | |
|      - 'net.retrodeck.retrodeck.yml'
 | |
|      - 'net.retrodeck.retrodeck.appdata.xml'
 | |
|   pull_request: 
 | |
|     branches:
 | |
|      - main
 | |
| 
 | |
|   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
 | |
| 
 | |
|       - name: Clone RetroDECK repo
 | |
|         uses: actions/checkout@v3
 | |
|         with:
 | |
|           submodules: 'true'
 | |
| 
 | |
|       - name: "Install dependencies"
 | |
|         run: "automation_tools/install_dependencies.sh"
 | |
| 
 | |
|       - name: Run pre-build automation tasks
 | |
|         run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
 | |
| 
 | |
|       - name: Read manifest content
 | |
|         id: read_manifest
 | |
|         run: echo "::set-output name=file_content::$(cat net.retrodeck.retrodeck.yml)"
 | |
| 
 | |
|       # - name: "Updating release notes in appdata"
 | |
|       #   run: "automation_tools/appdata_management.sh"
 | |
|         
 | |
|       - name: Check versions (main only)
 | |
|         id: check_version_string
 | |
|         run: "automation_tools/main_version_checker.sh"
 | |
| 
 | |
|       - name: "[DEBUG] Outputting manifest"
 | |
|         run: cat net.retrodeck.retrodeck.yml
 | |
| 
 | |
|       - name: "Build flatpak: download only"
 | |
|         id: "flatpak-download"
 | |
|         run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
 | |
|         continue-on-error: true
 | |
| 
 | |
|       # Sometimes flatpak download fails, in this case it tries a second time
 | |
|       - name: "Build flatpak: download only (retry)"
 | |
|         if: steps.flatpak-download.outcome == 'failure'
 | |
|         run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
 | |
| 
 | |
|       - name: Build flatpak
 | |
|         run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
 | |
| 
 | |
|       - name: Create Artifact for flathub
 | |
|         run: | 
 | |
|           tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-main .
 | |
|           hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
 | |
|           echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact.sha
 | |
|           mv -f RetroDECK-Artifact.* ${{ secrets.ARTIFACT_REPO }}
 | |
| 
 | |
|       - name: Create Bundle
 | |
|         run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
 | |
| 
 | |
|       - name: Getting version info
 | |
|         id: version
 | |
|         run: |
 | |
|           appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
 | |
|           REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
 | |
|           DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
 | |
|           echo "REL_VER=$REL_VER" >> $GITHUB_ENV
 | |
|           echo -e "# Release Notes\n" >> "body.md"
 | |
|           echo "$DES" >> "body.md"          
 | |
| 
 | |
|       - name: Publish the flatpak in a new release
 | |
|         uses: ncipollo/release-action@v1
 | |
|         env:
 | |
|           REL_VER: ${{ env.REL_VER }}
 | |
|         with:
 | |
|           tag: ${{ env.REL_VER }}
 | |
|           name: "RetroDECK v${{ env.REL_VER }}"
 | |
|           bodyFile: "body.md"
 | |
|           artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
 | |
|           allowUpdates: true
 | |
|           makeLatest: true
 | |
|           token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
 | |
|           repo: RetroDECK
 | |
|         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
 |