From d4060fde6ab0728d549e5ad1f1126f27d5e3209e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 4 May 2024 09:46:01 +0200 Subject: [PATCH] WORKFLOWS: restoring cooker-selfhosted on main and removing persistent one [skip ci] --- .../workflows}/cooker-selfhosted.yml | 135 +++++++++++++----- .../cooker-selfhosted-persistent.yml | 0 2 files changed, 99 insertions(+), 36 deletions(-) rename {old/removed-workflows => .github/workflows}/cooker-selfhosted.yml (56%) rename {.github/workflows => old/removed-workflows}/cooker-selfhosted-persistent.yml (100%) diff --git a/old/removed-workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml similarity index 56% rename from old/removed-workflows/cooker-selfhosted.yml rename to .github/workflows/cooker-selfhosted.yml index 43d086c9..4ffb693a 100644 --- a/old/removed-workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -1,32 +1,31 @@ name: "Build cooker" on: - # push: - # branches: - # - cooker* - # - feat* - # 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: - # - cooker* + push: + branches: + - cooker* + - feat* + 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: + - cooker* # Italy (CET): 11:00 PM # Japan (JST): 7:00 AM - schedule: - - cron: '0 22 * * *' + # schedule: + # - cron: '0 22 * * *' workflow_dispatch: - jobs: Building_RetroDECK: @@ -49,6 +48,33 @@ jobs: - name: Generate cooker build ID run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" + - name: Get branch name + id: branch_name + run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV + + # if it's a feature branch it will not marked as "latest" cooker version + - name: "Set makeLatest (cooker only)" + run: | + if [[ "$BRANCH_NAME" == 'feat/'* || "$BRANCH_NAME" == 'refs/'* ]]; then + echo "MAKE_LATEST=false" >> $GITHUB_ENV + else + echo "MAKE_LATEST=true" >> $GITHUB_ENV + fi + + # if the branch is coming from a PR the tag should be manually built + - name: "Generate version tag" + run: | + if [[ "$BRANCH_NAME" == 'refs/'* ]]; then + pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}') + source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref') + source_branch=${source_branch//\//-} + echo "[DEBUG] source branch is: $source_branch" + echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV + else + echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV + fi + echo "Version TAG: ${{ env.TAG }}" + # 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" @@ -109,23 +135,10 @@ jobs: id: commits continue-on-error: true - - name: Get branch name - id: branch_name - run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV - - # if it's a feature branch it will not marked as "latest" cooker version - - name: "Set makeLatest (cooker only)" - run: | - if [[ "$BRANCH_NAME" == 'feat/'* ]]; then - echo "MAKE_LATEST=false" >> $GITHUB_ENV - else - echo "MAKE_LATEST=true" >> $GITHUB_ENV - fi - - name: Publish the flatpak in a new cooker release uses: ncipollo/release-action@v1 with: - tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}" + tag: "${{env.TAG}}" body: | # Release Notes (Cooker) This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. @@ -134,12 +147,12 @@ jobs: ## Commits since last release ${{ steps.commits.outputs.commits }} - For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/qQcrFvaA2C) on our Discord server. + For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/WDc5C9YWMx) on our Discord server. 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-cooker.flatpak,RetroDECK-Artifact.tar.gz" + artifacts: "RetroDECK-cooker.flatpak,RetroDECK-cooker.flatpak.sha,RetroDECK-Artifact.tar.gz" allowUpdates: true makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build token: ${{ secrets.TRIGGER_BUILD_TOKEN }} @@ -154,3 +167,53 @@ jobs: path: RetroDECK-cooker.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-cooker" + # GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}" + # RELEASE_NAME="RetroDECK ${{env.TAG}}" + # TAG="${{env.TAG}}" + # RELEASE_BODY="# Release Notes (Cooker) + # This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + # On branch [${{env.BRANCH_NAME}}](https://repo.retrodeck.net/RetroDECK/RetroDECK/src/branch/${{env.BRANCH_NAME}}). + + # ## Commits since last release + # ${{ steps.commits.outputs.commits }} + + # For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/WDc5C9YWMx) on our Discord server. + + # 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." + + # # 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 "{\"tag_name\":\"$TAG\",\"name\":\"$RELEASE_NAME\",\"body\":\"$RELEASE_BODY\"}" \ + # "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-cooker.flatpak" \ + # "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak" + + # # Upload artifacts sha + # curl -X POST \ + # -H "Authorization: token ${GITEA_TOKEN}" \ + # -H "Content-Type: multipart/form-data" \ + # -F "attachment=@RetroDECK-cooker.flatpak.sha" \ + # "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak.sha" + + # 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/cooker-selfhosted-persistent.yml b/old/removed-workflows/cooker-selfhosted-persistent.yml similarity index 100% rename from .github/workflows/cooker-selfhosted-persistent.yml rename to old/removed-workflows/cooker-selfhosted-persistent.yml