WORKFLOWS: restoring cooker-selfhosted on main and removing persistent one [skip ci]

This commit is contained in:
XargonWan 2024-05-04 09:46:01 +02:00
parent eff4e28c0c
commit d4060fde6a
2 changed files with 99 additions and 36 deletions

View file

@ -1,32 +1,31 @@
name: "Build cooker" name: "Build cooker"
on: on:
# push: push:
# branches: branches:
# - cooker* - cooker*
# - feat* - feat*
# paths: paths:
# - '.github/workflows/**' - '.github/workflows/**'
# - 'automation_tools/**' - 'automation_tools/**'
# - 'emu-configs/**' - 'emu-configs/**'
# - 'es-configs/**' - 'es-configs/**'
# - 'functions/**' - 'functions/**'
# - 'rd-submodules/**' - 'rd-submodules/**'
# - '*.sh' - '*.sh'
# - 'net.retrodeck.retrodeck.yml' - 'net.retrodeck.retrodeck.yml'
# - 'net.retrodeck.retrodeck.appdata.xml' - 'net.retrodeck.retrodeck.appdata.xml'
# pull_request: pull_request:
# branches: branches:
# - cooker* - cooker*
# Italy (CET): 11:00 PM # Italy (CET): 11:00 PM
# Japan (JST): 7:00 AM # Japan (JST): 7:00 AM
schedule: # schedule:
- cron: '0 22 * * *' # - cron: '0 22 * * *'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
Building_RetroDECK: Building_RetroDECK:
@ -49,6 +48,33 @@ jobs:
- name: Generate cooker build ID - name: Generate cooker build ID
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" 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 # backing up manifest in case download fails and hashes must be recalculated
- name: Manifest backup - name: Manifest backup
run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak"
@ -109,23 +135,10 @@ jobs:
id: commits id: commits
continue-on-error: true 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 - name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
with: with:
tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}" tag: "${{env.TAG}}"
body: | body: |
# Release Notes (Cooker) # Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. 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 ## Commits since last release
${{ steps.commits.outputs.commits }} ${{ 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. 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. 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 allowUpdates: true
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
token: ${{ secrets.TRIGGER_BUILD_TOKEN }} token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
@ -154,3 +167,53 @@ jobs:
path: RetroDECK-cooker.flatpak path: RetroDECK-cooker.flatpak
continue-on-error: true 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"