From 55e21c06d94d3086231b891ed75afe3eb461f8f4 Mon Sep 17 00:00:00 2001 From: tech08mag Date: Tue, 1 Sep 2026 21:22:48 +0200 Subject: [PATCH] new pipe --- .gitea/workflows/release.yml | 107 ++++++++++++++--------------------- 1 file changed, 44 insertions(+), 63 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b046434..e22a1c9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -2,24 +2,22 @@ name: Build and Release APK on: push: - branches: [main] + tags: + - 'v*' workflow_dispatch: env: ANDROID_HOME: ${{ runner.tool_cache }}/android-sdk ANDROID_SDK_ROOT: ${{ runner.tool_cache }}/android-sdk -permissions: - contents: write - jobs: build: runs-on: ubuntu-latest - outputs: - apk-path: ${{ steps.upload-apk.outputs.path }} steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Set up Node uses: actions/setup-node@v4 @@ -43,7 +41,6 @@ jobs: unzip -q /tmp/cmdtools.zip -d "$ANDROID_HOME/cmdline-tools" mv "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest" fi - # Accept all licenses by writing known license hashes mkdir -p "$ANDROID_HOME/licenses" echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license" @@ -78,63 +75,47 @@ jobs: cd carry-your-live/android ./gradlew assembleRelease - - name: Upload APK - id: upload-apk - uses: actions/upload-artifact@v3 - with: - name: carry-your-live-release - path: carry-your-live/android/app/build/outputs/release/app-release.apk - - release: - needs: build - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Download APK artifact - uses: actions/download-artifact@v3 - with: - name: carry-your-live-release - path: . - - - name: Compute next version - id: version + - name: Find APK + id: find-apk run: | - latest=$(git tag --list 'v[0-9]*' --sort=-v:refname | head -n 1) - if [ -z "$latest" ]; then - next="v1.0.0" - else - latest=${latest#v} - IFS='.' read -r major minor patch <<< "$latest" - next="v${major}.${minor}.$((patch + 1))" - fi - echo "next=${next}" >> "$GITHUB_OUTPUT" + APK_PATH=$(find carry-your-live/android/app/build/outputs -name "*.apk" -type f | head -n 1) + echo "apk_path=$APK_PATH" >> "$GITHUB_OUTPUT" + echo "Found APK at: $APK_PATH" - - name: Build changelog - id: changelog + - name: Create Gitea Release and Upload APK + if: startsWith(github.ref, 'refs/tags/v') + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} run: | - prev_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "") - if [ -z "$prev_tag" ]; then - log=$(git log --oneline --no-merges main | head -n 40) - else - log=$(git log --oneline --no-merges "$prev_tag"..main | head -n 40) + TAG_NAME="${GITHUB_REF#refs/tags/}" + REPO_OWNER="${GITHUB_REPOSITORY%/*}" + REPO_NAME="${GITHUB_REPOSITORY#*/}" + APK_PATH="${{ steps.find-apk.outputs.apk_path }}" + APK_NAME="carry-your-live-${TAG_NAME}.apk" + + # Create release using Gitea API + RESPONSE=$(curl -s -X POST "https://techmos.gitea.org/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{ + \"tag_name\": \"${TAG_NAME}\", + \"name\": \"${TAG_NAME}\", + \"body\": \"Automated release for ${TAG_NAME}\", + \"draft\": false, + \"prerelease\": false + }") + + RELEASE_ID=$(echo "$RESPONSE" | jq -r '.id') + + if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + echo "Release might already exist, fetching existing release..." + RELEASE_ID=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \ + "https://techmos.gitea.org/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases/tags/${TAG_NAME}" | jq -r '.id') fi - { - echo "body<> "$GITHUB_OUTPUT" - - - name: Create release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ steps.version.outputs.next }} - name: ${{ steps.version.outputs.next }} - body: ${{ steps.changelog.outputs.body }} - files: ./app-release.apk - generate_release_notes: false \ No newline at end of file + + # Upload APK as attachment + curl -s -X POST "https://techmos.gitea.org/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases/${RELEASE_ID}/assets" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -F "attachment=@${APK_PATH};filename=${APK_NAME}" + + echo "APK uploaded to release ${TAG_NAME}" \ No newline at end of file