From d1ed2efaa6a70f58b243091c50778acfc5aae8d0 Mon Sep 17 00:00:00 2001 From: Marco Maatz Date: Fri, 16 May 2025 12:41:15 +0200 Subject: [PATCH] add wf --- .gitea/workflows/createTag.yaml | 20 +++++++++++ .gitea/workflows/updateRelease.yaml | 51 +++++++++++++++++++---------- 2 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 .gitea/workflows/createTag.yaml diff --git a/.gitea/workflows/createTag.yaml b/.gitea/workflows/createTag.yaml new file mode 100644 index 0000000..7a72a60 --- /dev/null +++ b/.gitea/workflows/createTag.yaml @@ -0,0 +1,20 @@ +name: Create Tag +on: + workflow_call: + inputs: + repo: + required: true + type: string + tag: + required: true + type: string +jobs: + UpdateRelease: + runs-on: ubuntu-latest + steps: + - name: Create Tag + run: | + git config user.name "${{ vars.GIT_DEPLOY_NAME }}" + git config user.email "${{ vars.GIT_DEPLOY_MAIL }}" + git tag -a "${{ inputs.tag }}" -m "Tag automatically created by Gitea Action" + git push --follow-tags \ No newline at end of file diff --git a/.gitea/workflows/updateRelease.yaml b/.gitea/workflows/updateRelease.yaml index 0c1b425..0072092 100644 --- a/.gitea/workflows/updateRelease.yaml +++ b/.gitea/workflows/updateRelease.yaml @@ -20,6 +20,9 @@ on: fileName: required: false type: string + buildChannel: + required: false + type: string jobs: UpdateRelease: runs-on: ubuntu-latest @@ -37,24 +40,13 @@ jobs: OWNER="greyhound" API_TOKEN=${{ vars.PAT_TOKEN }} - # Fetch Release - tag=$(echo "${{ inputs.tag }}" | sed 's/\//%2F/g') - - release=$(curl -s -H "Authorization: token $API_TOKEN" \ - "$GITEA_API_URL/repos/$OWNER/${{ inputs.repo }}/releases/tags/$tag") - - # Extract the ID of the Release - release_id=$(echo $release | jq -r '.id') - - if [ "$release_id" == "null" ]; then - echo "No release for tag '${{ inputs.tag }}' found. Exiting." - exit 0 + prerelease="true" + if [ "${{ inputs.buildChannel }}" = "stable" ]; then + prerelease="false" fi - - echo "Found tag '${{ inputs.tag }}' release with ID: $release_id" - - + ### MILESTONE ### + # Read Milestone and Build Url milestones=$(curl -s -H "Authorization: token $API_TOKEN" \ "$GITEA_API_URL/repos/$OWNER/${{ inputs.repo }}/milestones") @@ -67,12 +59,37 @@ jobs: echo "Milestone named '${{ inputs.milestoneName }}' found with id $update_milestone_id." milestoneUrl="https://gitea.greyhound-software.com/$OWNER/${{ inputs.repo }}/milestone/$update_milestone_id" + fi + ### RELEASE ### + # Read Release and Extract the ID + tag=$(echo "${{ inputs.tag }}" | sed 's/\//%2F/g') + + release=$(curl -s -H "Authorization: token $API_TOKEN" \ + "$GITEA_API_URL/repos/$OWNER/${{ inputs.repo }}/releases/tags/$tag") + + release_id=$(echo $release | jq -r '.id') + + if [ "$release_id" == "null" ]; then + echo "No Release for tag '${{ inputs.tag }}' found. Create a new Release." + + release_create=$(curl -s -X PATCH -H "Authorization: token $API_TOKEN" \ + -H "Content-Type: application/json" \ + -d "{\"body\": \"$milestoneUrl \n${{ inputs.downloadUrl }}\", \"name\": \"${{ inputs.milestoneName }}\", \"prerelease\": \"$prerelease\"}" \ + "$GITEA_API_URL/repos/$OWNER/${{ inputs.repo }}/releases") + + release_id=$(echo $release_create | jq -r '.id') + + else + echo "Found Release for tag '${{ inputs.tag }}' with ID: $release_id" + release_update=$(curl -s -X PATCH -H "Authorization: token $API_TOKEN" \ -H "Content-Type: application/json" \ - -d "{\"body\": \"$milestoneUrl \n${{ inputs.downloadUrl }}\", \"name\": \"${{ inputs.milestoneName }}\"}" \ + -d "{\"body\": \"$milestoneUrl \n${{ inputs.downloadUrl }}\", \"name\": \"${{ inputs.milestoneName }}\", \"prerelease\": \"$prerelease\"}" \ "$GITEA_API_URL/repos/$OWNER/${{ inputs.repo }}/releases/$release_id") + fi + if [ "${{ inputs.artifactName }}" != "null" ]; then artifact_file="./${{ inputs.fileName }}"