name: cooker-selfhosted on: push: branches: - cooker* 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 - name: Generate build ID id: generating_buildid run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")" - uses: actions/checkout@v3 - 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 /bin/bash ${GITHUB_WORKSPACE}/automation_tools/update_sha.sh # Run SHA placehold replacement script for dynamic archives - 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 }}-${{ steps.generating_buildid.outputs.build-id }}" 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