diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index ab2864befc4..88161032509 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -17,16 +17,49 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 with: - fetch-depth: 10 + fetch-depth: 0 - - name: Get Last 10 Commits - id: get_commits + + - name: Download last SHA artifact + uses: dawidd6/action-download-artifact@v3 + with: + workflow: beta.yml + name: last-sha + path: . + + continue-on-error: true + + - name: Get Commits Since Last Run run: | - echo 'COMMIT_LOG<> $GITHUB_ENV - git log ${{ github.event.before }}..${{ github.sha }} --pretty=format:"%s" -10 | while IFS= read -r line; do - echo "$line" >> $GITHUB_ENV - done - echo 'EOF' >> $GITHUB_ENV + if [ -f last_sha.txt ]; then + LAST_SHA=$(cat last_sha.txt) + else + # Fallback to first commit if no previous SHA available + LAST_SHA=$(git rev-list --max-parents=0 HEAD) + fi + echo "Commits since $LAST_SHA:" + # Accumulate commit logs in a shell variable + COMMIT_LOGS=$(git log $LAST_SHA..HEAD --pretty=format:"%h - %s") + # URL-encode the newline characters for GitHub Actions + COMMIT_LOGS="${COMMIT_LOGS//'%'/'%25'}" + COMMIT_LOGS="${COMMIT_LOGS//$'\n'/'%0A'}" + COMMIT_LOGS="${COMMIT_LOGS//$'\r'/'%0D'}" + # Append the encoded commit logs to the COMMIT_LOG environment variable + echo "COMMIT_LOG=${COMMIT_LOGS}" >> $GITHUB_ENV + # Debugging: Print the variable to check its content + echo "$COMMIT_LOGS" + shell: /usr/bin/bash -e {0} + env: + CI: true + + - name: Save Current SHA for Next Run + run: echo ${{ github.sha }} > last_sha.txt + + - name: Upload Current SHA as Artifact + uses: actions/upload-artifact@v2 + with: + name: last-sha + path: last_sha.txt - name: Set variables run: | @@ -42,16 +75,16 @@ jobs: distribution: 'temurin' java-version: 17 cache: gradle - + - name: Decode Keystore File run: echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > $GITHUB_WORKSPACE/key.keystore - + - name: List files in the directory run: ls -l - + - name: Make gradlew executable run: chmod +x ./gradlew - + - name: Build with Gradle run: ./gradlew assembleAlpha -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/key.keystore -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} @@ -60,14 +93,24 @@ jobs: with: name: Dantotsu path: "app/build/outputs/apk/alpha/app-alpha.apk" - + - name: Upload APK to Discord shell: bash run: | - commit_messages=$(echo "$COMMIT_LOG") - contentbody=$( jq -Rsa . <<< "Alpha-Build: <@719439449423085569> **${{ env.VERSION }}**\n\n$commit_messages" ) + commit_messages=$(echo "$COMMIT_LOG" | sed 's/%0A/\n/g') + # Truncate commit messages if they are too long + max_length=1900 # Adjust this value as needed + if [ ${#commit_messages} -gt $max_length ]; then + commit_messages="${commit_messages:0:$max_length}... (truncated)" + fi + contentbody=$( jq -Rsa . <<< "Alpha-Build: <@719439449423085569> **$VERSION**: $commit_messages" ) curl -F "payload_json={\"content\":${contentbody}}" -F "dantotsu_debug=@app/build/outputs/apk/alpha/app-alpha.apk" ${{ secrets.DISCORD_WEBHOOK }} + env: + COMMIT_LOG: ${{ env.COMMIT_LOG }} + VERSION: ${{ env.VERSION }} + + - name: Delete Old Pre-Releases id: delete-pre-releases uses: sgpublic/delete-release-action@master @@ -76,4 +119,4 @@ jobs: pre-release-keep-count: 3 pre-release-drop-tag: true env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/gradlew b/gradlew index 4f906e0c811..bc60c54b5df 100644 --- a/gradlew +++ b/gradlew @@ -59,7 +59,7 @@ die () { echo exit 1 } - + # OS specific support (must be 'true' or 'false'). cygwin=false msys=false