From 01d6edcd1b6cbc3b487ad857abbe2c5875ef7f43 Mon Sep 17 00:00:00 2001 From: zhengzi1212 <167054013+zhengzi1212@users.noreply.github.com> Date: Sat, 2 May 2026 15:14:49 +0800 Subject: [PATCH 1/5] Add files via upload --- keystore/new-keystore.jks | Bin 0 -> 2762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keystore/new-keystore.jks diff --git a/keystore/new-keystore.jks b/keystore/new-keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..0cd29f2ab6f36777707f6d6053ea5846b7433433 GIT binary patch literal 2762 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 literal 0 HcmV?d00001 From adc141d4af6f8b64c6e322b464c35c91d3349f77 Mon Sep 17 00:00:00 2001 From: zhengzi1212 <167054013+zhengzi1212@users.noreply.github.com> Date: Sat, 2 May 2026 15:16:06 +0800 Subject: [PATCH 2/5] Delete keystore/demokeystore.jks --- keystore/demokeystore.jks | Bin 2489 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keystore/demokeystore.jks diff --git a/keystore/demokeystore.jks b/keystore/demokeystore.jks deleted file mode 100644 index 060d064ea05634dbc455b0e881c7e1e8a0579699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2489 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 Date: Sat, 2 May 2026 15:18:40 +0800 Subject: [PATCH 3/5] Delete keystore/new-keystore.jks --- keystore/new-keystore.jks | Bin 2762 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keystore/new-keystore.jks diff --git a/keystore/new-keystore.jks b/keystore/new-keystore.jks deleted file mode 100644 index 0cd29f2ab6f36777707f6d6053ea5846b7433433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2762 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 From bbdf533aec06d9675b036711371cfe22a4fc199e Mon Sep 17 00:00:00 2001 From: zhengzi1212 <167054013+zhengzi1212@users.noreply.github.com> Date: Sat, 2 May 2026 15:19:07 +0800 Subject: [PATCH 4/5] Add files via upload --- keystore/demokeystore.jks | Bin 0 -> 2762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keystore/demokeystore.jks diff --git a/keystore/demokeystore.jks b/keystore/demokeystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..0cd29f2ab6f36777707f6d6053ea5846b7433433 GIT binary patch literal 2762 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 literal 0 HcmV?d00001 From 4e23bb58f678ff7d501aad02beb75c7f0ef0f130 Mon Sep 17 00:00:00 2001 From: zhengzi1212 <167054013+zhengzi1212@users.noreply.github.com> Date: Sat, 2 May 2026 15:37:29 +0800 Subject: [PATCH 5/5] Update aaps-ci.yml --- .github/workflows/aaps-ci.yml | 136 +++------------------------------- 1 file changed, 11 insertions(+), 125 deletions(-) diff --git a/.github/workflows/aaps-ci.yml b/.github/workflows/aaps-ci.yml index e103317ce39..119f26f8047 100644 --- a/.github/workflows/aaps-ci.yml +++ b/.github/workflows/aaps-ci.yml @@ -23,7 +23,7 @@ jobs: name: Build AAPS runs-on: ubuntu-latest steps: - - name: Decode Secrets Keystore Set and Oauth2 to Env + - name: Decode Secrets Keystore Set or use separate secrets run: | if [ -n "${{ secrets.KEYSTORE_SET }}" ]; then echo "πŸ” Decoding KEYSTORE_SET..." @@ -52,7 +52,7 @@ jobs: echo "KEY_ALIAS=${{ secrets.KEY_ALIAS }}" >> $GITHUB_ENV echo "KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> $GITHUB_ENV fi - echo "GDRIVE_OAUTH2=${{ secrets.GDRIVE_OAUTH2 }}" >> $GITHUB_ENV + # ζ³¨ζ„οΌšε·²εˆ ι™€ GDRIVE_OAUTH2 θΏ™δΈ€θ‘Œ - name: Check Secrets run: | @@ -66,9 +66,7 @@ jobs: fi } - # Check secrets - check_secret "$GDRIVE_OAUTH2" "GDRIVE_OAUTH2" - + # εͺζ£€ζŸ₯ keystore η›Έε…³ηš„ε››δΈͺ secretοΌˆη§»ι™€δΊ† GDRIVE_OAUTH2 ηš„ζ£€ζŸ₯οΌ‰ check_secret "$KEYSTORE_BASE64" "KEYSTORE_BASE64" check_secret "$KEYSTORE_PASSWORD" "KEYSTORE_PASSWORD" check_secret "$KEY_ALIAS" "KEY_ALIAS" @@ -112,41 +110,7 @@ jobs: rm -f "$JARSIGNER_LOG" dummy.jar echo "βœ… Keystore, alias, and key password are valid." - rm -f "$KEYTOOL_LOG" - echo "βœ… Keystore and credentials validated." - - - name: Decode GDrive OAuth2 secrets - run: | - echo "πŸ” Decoding GDRIVE_OAUTH2..." - DECODED=$(echo "${{ secrets.GDRIVE_OAUTH2 }}" | base64 -d) - - GDRIVE_CLIENT_ID=$(echo "$DECODED" | cut -d'|' -f1) - GDRIVE_REFRESH_TOKEN=$(echo "$DECODED" | cut -d'|' -f2) - - echo "::add-mask::$GDRIVE_CLIENT_ID" - echo "::add-mask::$GDRIVE_REFRESH_TOKEN" - - echo "GDRIVE_CLIENT_ID=$GDRIVE_CLIENT_ID" >> $GITHUB_ENV - echo "GDRIVE_REFRESH_TOKEN=$GDRIVE_REFRESH_TOKEN" >> $GITHUB_ENV - - echo "βœ… GDRIVE_CLIENT_ID and GDRIVE_REFRESH_TOKEN extracted from GDRIVE_OAUTH2" - - - name: Retrieving Google Drive access token - run: | - echo "πŸ” Getting Google OAuth2 access token..." - TOKEN_RESPONSE=$(curl -s -X POST https://oauth2.googleapis.com/token \ - -d client_id="$GDRIVE_CLIENT_ID" \ - -d refresh_token="$GDRIVE_REFRESH_TOKEN" \ - -d grant_type=refresh_token) - ACCESS_TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r .access_token) - echo "::add-mask::$ACCESS_TOKEN" - if [ -z "$ACCESS_TOKEN" ] || [ "$ACCESS_TOKEN" = "null" ]; then - echo "❌ Failed to get access token." - echo "$TOKEN_RESPONSE" - exit 1 - fi - echo "ACCESS_TOKEN=$ACCESS_TOKEN" >> $GITHUB_ENV - echo "βœ… Access token obtained." + # ζ³¨ζ„οΌšδ»₯δΈ‹ζ•΄δΈͺ Decode GDrive OAuth2 secrets ε’Œ Retrieving Google Drive access token ζ­₯ιͺ€ε·²εˆ ι™€ - name: Checkout source code uses: actions/checkout@v4 @@ -178,7 +142,6 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - # When upgrading the JDK, please update this section accordingly as well. java-version: 21 distribution: 'temurin' cache: gradle @@ -205,87 +168,10 @@ jobs: mv app/build/outputs/apk/${{ env.VARIANT_FLAVOR }}/${{ env.VARIANT_TYPE }}/*.apk aaps-${{ env.VERSION }}${{ env.VERSION_SUFFIX }}.apk mv wear/build/outputs/apk/${{ env.VARIANT_FLAVOR }}/${{ env.VARIANT_TYPE }}/*.apk aaps-wear-${{ env.VERSION }}${{ env.VERSION_SUFFIX }}.apk - - name: Upload APKs to Google Drive - run: | - set -e - echo "πŸ” Start uploading APKs to Google Drive..." - - echo "πŸ“ Checking or creating AAPS folder" - AAPS_FOLDER_ID=$(curl -s -X GET \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - "https://www.googleapis.com/drive/v3/files?q=name='AAPS'+and+mimeType='application/vnd.google-apps.folder'+and+trashed=false" \ - | jq -r '.files[0].id') - - if [ "$AAPS_FOLDER_ID" == "null" ] || [ -z "$AAPS_FOLDER_ID" ]; then - AAPS_FOLDER_ID=$(curl -s -X POST \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{"name": "AAPS", "mimeType": "application/vnd.google-apps.folder"}' \ - "https://www.googleapis.com/drive/v3/files" | jq -r '.id') - echo "πŸ“‚ Created AAPS folder: $AAPS_FOLDER_ID" - else - echo "πŸ“‚ Found AAPS folder: $AAPS_FOLDER_ID" - fi - - echo "πŸ“ Checking or creating version folder: $VERSION" - VERSION_FOLDER_ID=$(curl -s -X GET \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - "https://www.googleapis.com/drive/v3/files?q=name='${VERSION}'+and+mimeType='application/vnd.google-apps.folder'+and+'$AAPS_FOLDER_ID'+in+parents+and+trashed=false" \ - | jq -r '.files[0].id') - - if [ "$VERSION_FOLDER_ID" == "null" ] || [ -z "$VERSION_FOLDER_ID" ]; then - VERSION_FOLDER_ID=$(curl -s -X POST \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - -H "Content-Type: application/json" \ - -d "{\"name\": \"${VERSION}\", \"mimeType\": \"application/vnd.google-apps.folder\", \"parents\": [\"$AAPS_FOLDER_ID\"]}" \ - "https://www.googleapis.com/drive/v3/files" | jq -r '.id') - echo "πŸ“‚ Created version folder: $VERSION_FOLDER_ID" - else - echo "πŸ“‚ Found version folder: $VERSION_FOLDER_ID" - fi - - upload_to_gdrive() { - FILE=$1 - NAME=$2 - if [ ! -f "$FILE" ]; then - echo "❌ File not found: $FILE" - exit 26 - fi - - echo "πŸ“„ Checking if file $NAME already exists in Google Drive..." - QUERY="name='${NAME}' and '${VERSION_FOLDER_ID}' in parents and trashed=false" - ENCODED_QUERY=$(python3 -c "import urllib.parse; print(urllib.parse.quote('''$QUERY'''))") - FILE_ID=$(curl -s \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - "https://www.googleapis.com/drive/v3/files?q=${ENCODED_QUERY}&fields=files(id)" \ - | jq -r '.files[0].id') - - if [[ -n "$FILE_ID" && "$FILE_ID" != "null" ]]; then - echo "πŸ—‘οΈ Deleting existing file with ID: $FILE_ID" - curl -s -X DELETE \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - "https://www.googleapis.com/drive/v3/files/${FILE_ID}" - fi - - echo "⬆️ Uploading $FILE as $NAME to Google Drive..." - RESPONSE=$(curl -s -w "%{http_code}" -o /tmp/gdrive_response.json \ - -X POST \ - -H "Authorization: Bearer $ACCESS_TOKEN" \ - -F "metadata={\"name\":\"$NAME\", \"parents\":[\"$VERSION_FOLDER_ID\"]};type=application/json;charset=UTF-8" \ - -F "file=@$FILE;type=application/vnd.android.package-archive" \ - "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart") - - HTTP_CODE="${RESPONSE: -3}" - if [[ "$HTTP_CODE" != "200" && "$HTTP_CODE" != "201" ]]; then - echo "❌ Upload failed with HTTP status: $HTTP_CODE" - cat /tmp/gdrive_response.json - exit 1 - fi - - echo "βœ… Uploaded: $NAME" - } - - upload_to_gdrive "aaps-${VERSION}${VERSION_SUFFIX}.apk" "aaps-${VERSION}${VERSION_SUFFIX}.apk" - upload_to_gdrive "aaps-wear-${VERSION}${VERSION_SUFFIX}.apk" "aaps-wear-${VERSION}${VERSION_SUFFIX}.apk" - - echo "πŸŽ‰ APKs successfully uploaded to Google Drive!" \ No newline at end of file + # ζ–°ε’žοΌšδΈŠδΌ  APK 作为 GitHub Actions Artifact + - name: Upload APKs as Artifacts + uses: actions/upload-artifact@v4 + with: + name: aaps-apks + path: | + aaps-*.apk