diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 351b01ad..a5257b07 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -29,226 +29,226 @@ permissions: jobs: # Build RetroDECK Job - Build_RetroDECK: - runs-on: retrodeck-server - outputs: - tag: ${{ steps.set-outputs.outputs.tag }} - release_body: ${{ steps.set-outputs.outputs.release_body }} - env: - REKKU_TOKEN: ${{ needs.Generate-Rekku-Token.outputs.rekku_token }} + # Build_RetroDECK: + # runs-on: retrodeck-server + # outputs: + # tag: ${{ steps.set-outputs.outputs.tag }} + # release_body: ${{ steps.set-outputs.outputs.release_body }} + # env: + # REKKU_TOKEN: ${{ needs.Generate-Rekku-Token.outputs.rekku_token }} - steps: - # Remove Stuck Mounts - - name: Remove stuck mounts - run: | - sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* - sudo umount -f $HOME/actions-run/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* - continue-on-error: true + # steps: + # # Remove Stuck Mounts + # - name: Remove stuck mounts + # run: | + # sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* + # sudo umount -f $HOME/actions-run/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* + # continue-on-error: true - # Clone Repository - - name: Clone RetroDECK repo - uses: actions/checkout@v4 - with: - submodules: true + # # Clone Repository + # - name: Clone RetroDECK repo + # uses: actions/checkout@v4 + # with: + # submodules: true - # Install Dependencies - - name: Install dependencies - run: curl "https://raw.githubusercontent.com/RetroDECK/components-template/main/automation_tools/install_dependencies.sh" | bash + # # Install Dependencies + # - name: Install dependencies + # run: curl "https://raw.githubusercontent.com/RetroDECK/components-template/main/automation_tools/install_dependencies.sh" | bash - # Generate Build ID for Cooker Branches - - name: Generate cooker build ID - if: github.ref != 'refs/heads/main' - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" + # # Generate Build ID for Cooker Branches + # - name: Generate cooker build ID + # if: github.ref != 'refs/heads/main' + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" - # Get Branch Name - - name: Get branch name - id: get-branch-name - run: | - branch_name=$(echo $GITHUB_REF | sed 's|refs/heads/||') - echo "BRANCH_NAME=$branch_name" >> $GITHUB_ENV + # # Get Branch Name + # - name: Get branch name + # id: get-branch-name + # run: | + # branch_name=$(echo $GITHUB_REF | sed 's|refs/heads/||') + # echo "BRANCH_NAME=$branch_name" >> $GITHUB_ENV - # Generate Version Tag - - name: Generate version tag - id: set-outputs - run: | - source automation_tools/version_extractor.sh - MANIFEST_VERSION="$(fetch_manifest_version)" - if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then - TAG="$MANIFEST_VERSION" - MAKE_LATEST=true - else - source_branch="${GITHUB_HEAD_REF//\//-}" - TAG="PR-$source_branch-${{ github.run_id }}" - MAKE_LATEST=false - fi - echo "tag=$TAG" >> $GITHUB_OUTPUT - echo "MAKE_LATEST=$MAKE_LATEST" >> $GITHUB_ENV + # # Generate Version Tag + # - name: Generate version tag + # id: set-outputs + # run: | + # source automation_tools/version_extractor.sh + # MANIFEST_VERSION="$(fetch_manifest_version)" + # if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then + # TAG="$MANIFEST_VERSION" + # MAKE_LATEST=true + # else + # source_branch="${GITHUB_HEAD_REF//\//-}" + # TAG="PR-$source_branch-${{ github.run_id }}" + # MAKE_LATEST=false + # fi + # echo "tag=$TAG" >> $GITHUB_OUTPUT + # echo "MAKE_LATEST=$MAKE_LATEST" >> $GITHUB_ENV - # if the branch is coming from a PR the tag should be manually built - - name: "Generate version tag and evaluating latest tag" - run: | - # Source the version extractor script to get the manifest version - source automation_tools/version_extractor.sh - MANIFEST_VERSION="$(fetch_manifest_version)" - echo "MANIFEST_VERSION=$MANIFEST_VERSION" >> $GITHUB_ENV + # # if the branch is coming from a PR the tag should be manually built + # - name: "Generate version tag and evaluating latest tag" + # run: | + # # Source the version extractor script to get the manifest version + # source automation_tools/version_extractor.sh + # MANIFEST_VERSION="$(fetch_manifest_version)" + # echo "MANIFEST_VERSION=$MANIFEST_VERSION" >> $GITHUB_ENV - # Check if the event is related to a pull request - if [[ "$GITHUB_EVENT_NAME" == "pull_request" || "$GITHUB_EVENT_NAME" == "pull_request_target" ]]; then - # Use GITHUB_HEAD_REF to get the source branch - source_branch="${GITHUB_HEAD_REF}" + # # Check if the event is related to a pull request + # if [[ "$GITHUB_EVENT_NAME" == "pull_request" || "$GITHUB_EVENT_NAME" == "pull_request_target" ]]; then + # # Use GITHUB_HEAD_REF to get the source branch + # source_branch="${GITHUB_HEAD_REF}" - # Replace '/' with '-' in the branch name - source_branch=${source_branch//\//-} - # Use GITHUB_HEAD_REF to get the source branch - source_branch="${GITHUB_HEAD_REF}" + # # Replace '/' with '-' in the branch name + # source_branch=${source_branch//\//-} + # # Use GITHUB_HEAD_REF to get the source branch + # source_branch="${GITHUB_HEAD_REF}" - # Replace '/' with '-' in the branch name - source_branch=${source_branch//\//-} - echo "[DEBUG] source branch is: $source_branch" + # # Replace '/' with '-' in the branch name + # source_branch=${source_branch//\//-} + # echo "[DEBUG] source branch is: $source_branch" - # Generate the tag for a pull request - echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV - echo "MAKE_LATEST=false" >> $GITHUB_OUTPUT # Not marked as the latest cooker version if it's a feature branch - else - # Generate the tag for non-pull request branches - TAG="$MANIFEST_VERSION-${{ env.buildid }}" - echo "TAG=$TAG" >> $GITHUB_ENV - echo "MAKE_LATEST=true" >> $GITHUB_OUTPUT - fi + # # Generate the tag for a pull request + # echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV + # echo "MAKE_LATEST=false" >> $GITHUB_OUTPUT # Not marked as the latest cooker version if it's a feature branch + # else + # # Generate the tag for non-pull request branches + # TAG="$MANIFEST_VERSION-${{ env.buildid }}" + # echo "TAG=$TAG" >> $GITHUB_ENV + # echo "MAKE_LATEST=true" >> $GITHUB_OUTPUT + # fi - # Output the manifest version and generated tag for debugging - echo "MANIFEST_VERSION: $MANIFEST_VERSION" - echo "Version TAG: $TAG" - echo "MAKE_LATEST: $MAKE_LATEST" + # # Output the manifest version and generated tag for debugging + # echo "MANIFEST_VERSION: $MANIFEST_VERSION" + # echo "Version TAG: $TAG" + # echo "MAKE_LATEST: $MAKE_LATEST" - # backing up manifest in case download fails and hashes must be recalculated - - name: Manifest backup - run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" + # # backing up manifest in case download fails and hashes must be recalculated + # - name: Manifest backup + # run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" - - name: Run pre-build automation tasks - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + # - name: Run pre-build automation tasks + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" - - name: "Adding flatpak portal for automated updates (Cooker only)" - if: github.ref != 'refs/heads/main' - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh" + # - name: "Adding flatpak portal for automated updates (Cooker only)" + # if: github.ref != 'refs/heads/main' + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh" - - name: "Updating release notes in appdata" - run: "automation_tools/appdata_management.sh" + # - name: "Updating release notes in appdata" + # run: "automation_tools/appdata_management.sh" - - name: "[DEBUG] Outputting manifest" - run: cat net.retrodeck.retrodeck.yml + # - name: "[DEBUG] Outputting manifest" + # run: cat net.retrodeck.retrodeck.yml - # Get Commits Since Last Release - - name: Get commits since last release - id: get-commits - run: | - LATEST_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --max-count=1 --first-parent) || echo "") - if [ -z "$LATEST_TAG" ]; then - COMMITS=$(git log HEAD --pretty=format:"- %s") - else - COMMITS=$(git log ${LATEST_TAG}..HEAD --pretty=format:"- %s") - fi - echo "commits=$COMMITS" >> $GITHUB_OUTPUT + # # Get Commits Since Last Release + # - name: Get commits since last release + # id: get-commits + # run: | + # LATEST_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --max-count=1 --first-parent) || echo "") + # if [ -z "$LATEST_TAG" ]; then + # COMMITS=$(git log HEAD --pretty=format:"- %s") + # else + # COMMITS=$(git log ${LATEST_TAG}..HEAD --pretty=format:"- %s") + # fi + # echo "commits=$COMMITS" >> $GITHUB_OUTPUT - # Generate Release Body - - name: Generate release body text - id: generate-body - run: | - # # Enable debugging - # set -x + # # Generate Release Body + # - name: Generate release body text + # id: generate-body + # run: | + # # # Enable debugging + # # set -x - # # Initialize the release body - # RELEASE_BODY="# Release Notes\n" - # RELEASE_BODY+="This release is based on the commit: RetroDECK/RetroDECK@c8bd579ad4d0922ba7ab1f5c122cc782ff6adc66.\n" - # RELEASE_BODY+="On branch [cooker](https://github.com/RetroDECK/RetroDECK/tree/cooker).\n\n" - # RELEASE_BODY+="## Commits since last release\n" - # RELEASE_BODY+="- RELEASE NOTES: fixed body\n\n" + # # # Initialize the release body + # # RELEASE_BODY="# Release Notes\n" + # # RELEASE_BODY+="This release is based on the commit: RetroDECK/RetroDECK@c8bd579ad4d0922ba7ab1f5c122cc782ff6adc66.\n" + # # RELEASE_BODY+="On branch [cooker](https://github.com/RetroDECK/RetroDECK/tree/cooker).\n\n" + # # RELEASE_BODY+="## Commits since last release\n" + # # RELEASE_BODY+="- RELEASE NOTES: fixed body\n\n" - # # Define the XML file path - # xml_file="./net.retrodeck.retrodeck.appdata.xml" + # # # Define the XML file path + # # xml_file="./net.retrodeck.retrodeck.appdata.xml" - # # Check if the XML file exists - # if [[ ! -f "$xml_file" ]]; then - # echo "Error: XML file not found: $xml_file" - # exit 1 - # fi + # # # Check if the XML file exists + # # if [[ ! -f "$xml_file" ]]; then + # # echo "Error: XML file not found: $xml_file" + # # exit 1 + # # fi - # # Extract the raw description content - # raw_description=$(xmlstarlet sel -t -m "/component/releases/release[1]/description/*" -c "." -n "$xml_file" 2>/dev/null) + # # # Extract the raw description content + # # raw_description=$(xmlstarlet sel -t -m "/component/releases/release[1]/description/*" -c "." -n "$xml_file" 2>/dev/null) - # # Check if xmlstarlet extraction was successful - # if [[ $? -ne 0 ]]; then - # echo "Error: Failed to extract description content using xmlstarlet" - # exit 1 - # fi + # # # Check if xmlstarlet extraction was successful + # # if [[ $? -ne 0 ]]; then + # # echo "Error: Failed to extract description content using xmlstarlet" + # # exit 1 + # # fi - # # Convert

tags to markdown headers using sed - # markdown_description=$(echo "$raw_description" | sed -e 's|

|\n### |g' -e 's|

||g') + # # # Convert

tags to markdown headers using sed + # # markdown_description=$(echo "$raw_description" | sed -e 's|

|\n### |g' -e 's|

||g') - # # Convert
  • tags to bullet points and trim spaces - # markdown_description=$(echo "$markdown_description" | sed -e 's|||g' -e 's|
  • |- |g' -e 's|
  • ||g' | awk '{$1=$1;print}') + # # # Convert
  • tags to bullet points and trim spaces + # # markdown_description=$(echo "$markdown_description" | sed -e 's|||g' -e 's|
  • |- |g' -e 's|
  • ||g' | awk '{$1=$1;print}') - # # Remove any remaining XML tags - # markdown_description=$(echo "$markdown_description" | sed -e 's/<[^>]*>//g') + # # # Remove any remaining XML tags + # # markdown_description=$(echo "$markdown_description" | sed -e 's/<[^>]*>//g') - # # Debug: Print the markdown description - # echo "Markdown Description:" - # echo "$markdown_description" + # # # Debug: Print the markdown description + # # echo "Markdown Description:" + # # echo "$markdown_description" - # # Append markdown content with proper formatting - # RELEASE_BODY+="$markdown_description\n" + # # # Append markdown content with proper formatting + # # RELEASE_BODY+="$markdown_description\n" - # # Output the release body for GitHub Actions - # { - # printf "release_body<> "$GITHUB_OUTPUT" + # # # Output the release body for GitHub Actions + # # { + # # printf "release_body<> "$GITHUB_OUTPUT" - # # Disable debugging - # set +x + # # # Disable debugging + # # set +x - RELEASE_BODY="# Release Notes\n" + # RELEASE_BODY="# Release Notes\n" - - name: "Build flatpak: download only" - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + # - name: "Build flatpak: download only" + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - # 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: | - echo "Download failed, maybe some hash changed since the build start." - echo "Recalculating hashes and retrying download..." - rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" - cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" - "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" - "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + # # 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: | + # echo "Download failed, maybe some hash changed since the build start." + # echo "Recalculating hashes and retrying download..." + # rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + # cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + # "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + # "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - - name: Build flatpak - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" + # - name: Build flatpak + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" - - name: Create Bundle - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" + # - name: Create Bundle + # run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" - # Upload artifacts for other jobs - - name: Upload Build Artifacts - uses: actions/upload-artifact@v4 - with: - name: retrodeck-artifacts - path: | - RetroDECK*.flatpak - RetroDECK*.flatpak.sha - RetroDECK*Artifact.tar.gz + # # Upload artifacts for other jobs + # - name: Upload Build Artifacts + # uses: actions/upload-artifact@v4 + # with: + # name: retrodeck-artifacts + # path: | + # RetroDECK*.flatpak + # RetroDECK*.flatpak.sha + # RetroDECK*Artifact.tar.gz Generate-Rekku-Token: uses: RetroDECK/components-template/.github/workflows/generate_rekku_token.yml@main - needs: Build_RetroDECK + # needs: Build_RetroDECK secrets: REKKU_PRIVATE_KEY: ${{ secrets.REKKU_PRIVATE_KEY }} GitHub-publish: runs-on: ubuntu-latest - needs: [Generate-Rekku-Token, Build_RetroDECK] + # needs: [Generate-Rekku-Token, Build_RetroDECK] + needs: [Generate-Rekku-Token] env: - REKKU_TOKEN: ${{ needs.Generate-Rekku-Token.outputs.rekku_token }} tag: ${{ needs.Build_RetroDECK.outputs.tag }} release_body: ${{ needs.Build_RetroDECK.outputs.release_body }} MAKE_LATEST: ${{ needs.Build_RetroDECK.outputs.MAKE_LATEST }} @@ -274,7 +274,7 @@ jobs: artifacts: "*.flatpak,*.flatpak.sha,*Artifact.tar.gz" allowUpdates: true makeLatest: ${{ env.MAKE_LATEST }} - token: ${{ env.REKKU_TOKEN }} + token: ${{ needs.Generate-Rekku-Token.outputs.rekku_token }} repo: "${{ env.repo_name }}" continue-on-error: ${{ github.ref != 'refs/heads/main' }}