From eff4e28c0c888baa500969e59156233cac14a73f Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 22 Apr 2024 22:33:44 +0900 Subject: [PATCH] WORKFLOW: added Gitea main publishment [skip ci] --- .github/workflows/main-gitea.yml | 171 -------------------------- .github/workflows/main-selfhosted.yml | 61 +++++---- 2 files changed, 39 insertions(+), 193 deletions(-) delete mode 100644 .github/workflows/main-gitea.yml diff --git a/.github/workflows/main-gitea.yml b/.github/workflows/main-gitea.yml deleted file mode 100644 index 0c163bc7..00000000 --- a/.github/workflows/main-gitea.yml +++ /dev/null @@ -1,171 +0,0 @@ -name: "Publish main on Gitea" - -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: ubuntu-latest - 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" - - # 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: 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: | - # 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: 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: Create fake files - run: | - echo "hello" > RetroDECK.flatpak - echo "hello" > RetroDECK-Artifact.tar.gz - - - 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 - - - name: Upload RetroDECK-cooker.flatpak to Gitea Release - run: | - # Set variables for Gitea host, organization, repository, access token, and release details - GITEA_HOST="repo.retrodeck.net" - ORGANIZATION="RetroDECK" - REPO="RetroDECK" - GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}" - RELEASE_NAME="RetroDECK v${{ env.REL_VER }}" - TAG="${{ env.REL_VER }}" - - payload=$(jq -cn \ - --arg tag_name "$TAG" \ - --arg name "$RELEASE_NAME" \ - --arg body "$(cat body.md)" \ - '{$tag_name, $name, $body}' - ) - - # Create a release using curl and capture the release ID - release_response=$(curl -X POST \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "$payload" \ - "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases" - ) - - # Extract the release ID from the response - release_id=$(echo $release_response | jq -r '.id') - - # Upload artifacts - curl -X POST \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@RetroDECK.flatpak" \ - "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak" - - curl -X POST \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@RetroDECK-Artifact.tar.gz" \ - "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz" - diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml index bd335618..6da64968 100644 --- a/.github/workflows/main-selfhosted.yml +++ b/.github/workflows/main-selfhosted.yml @@ -123,27 +123,44 @@ jobs: path: RetroDECK.flatpak continue-on-error: true - - name: Publish the flatpak in a new release on Gitea - 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.GITEA_TRIGGER_BUILD_TOKEN }} - repo: "https://repo.retrodeck.net/RetroDECK/RetroDECK" - continue-on-error: true - - - name: Upload RetroDECK.flatpak to Gitea Release + - name: Publish release on Gitea run: | - curl -X POST \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -F "file=@RetroDECK.flatpak" \ - "https://repo.retrodeck.net/RetroDECK/RetroDECK/releases/${{ env.REL_VER }}/assets?name=RetroDECK.flatpak" - env: - GITEA_TOKEN: ${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }} + # Set variables for Gitea host, organization, repository, access token, and release details + GITEA_HOST="repo.retrodeck.net" + ORGANIZATION="RetroDECK" + REPO="RetroDECK" + GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}" + RELEASE_NAME="RetroDECK v${{ env.REL_VER }}" + TAG="${{ env.REL_VER }}" + + payload=$(jq -cn \ + --arg tag_name "$TAG" \ + --arg name "$RELEASE_NAME" \ + --arg body "$(cat body.md)" \ + '{$tag_name, $name, $body}' + ) + + # Create a release using curl and capture the release ID + release_response=$(curl -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "$payload" \ + "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases" + ) + + # Extract the release ID from the response + release_id=$(echo $release_response | jq -r '.id') + + # Upload artifacts + curl -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: multipart/form-data" \ + -F "attachment=@RetroDECK.flatpak" \ + "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak" + + curl -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: multipart/form-data" \ + -F "attachment=@RetroDECK-Artifact.tar.gz" \ + "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"