diff --git a/.github/workflows/build_to_archive.yml b/.github/workflows/build_to_archive.yml index be1433216d..4b6520b2cc 100644 --- a/.github/workflows/build_to_archive.yml +++ b/.github/workflows/build_to_archive.yml @@ -34,15 +34,17 @@ jobs: repository: "recloudstream/cloudstream-archive" - uses: actions/checkout@v5 - - name: Set up JDK 17 + + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - java-version: '17' - distribution: 'adopt' + java-version: 25 + distribution: adopt cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew + - name: Fetch keystore id: fetch_keystore run: | @@ -55,14 +57,14 @@ jobs: echo "key_pwd=$KEY_PWD" >> $GITHUB_OUTPUT - name: Run Gradle - run: | - ./gradlew assemblePrerelease + run: ./gradlew assemblePrerelease env: SIGNING_KEY_ALIAS: "key0" SIGNING_KEY_PASSWORD: ${{ steps.fetch_keystore.outputs.key_pwd }} SIGNING_STORE_PASSWORD: ${{ steps.fetch_keystore.outputs.key_pwd }} SIMKL_CLIENT_ID: ${{ secrets.SIMKL_CLIENT_ID }} SIMKL_CLIENT_SECRET: ${{ secrets.SIMKL_CLIENT_SECRET }} + - uses: actions/checkout@v5 with: repository: "recloudstream/cloudstream-archive" @@ -72,7 +74,7 @@ jobs: - name: Move build run: | cp app/build/outputs/apk/prerelease/release/*.apk "archive/$(git rev-parse --short HEAD).apk" - + - name: Push archive run: | cd $GITHUB_WORKSPACE/archive @@ -80,4 +82,4 @@ jobs: git config --local user.name "GitHub Actions" git add . git commit --amend -m "Build $GITHUB_SHA" || exit 0 # do not error if nothing to commit - git push --force \ No newline at end of file + git push --force diff --git a/.github/workflows/generate_dokka.yml b/.github/workflows/generate_dokka.yml index bc55ef1396..80dd91877a 100644 --- a/.github/workflows/generate_dokka.yml +++ b/.github/workflows/generate_dokka.yml @@ -25,32 +25,33 @@ jobs: app_id: ${{ secrets.GH_APP_ID }} private_key: ${{ secrets.GH_APP_KEY }} repository: "recloudstream/dokka" + - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@v5 with: path: "src" - name: Checkout dokka - uses: actions/checkout@master + uses: actions/checkout@v5 with: repository: "recloudstream/dokka" path: "dokka" token: ${{ steps.generate_token.outputs.token }} - + - name: Clean old builds run: | cd $GITHUB_WORKSPACE/dokka/ rm -rf "./app" rm -rf "./library" - - name: Setup JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - java-version: 17 - distribution: 'adopt' + java-version: 25 + distribution: adopt cache: gradle - - name: Setup Android SDK + - name: Set up Android SDK uses: android-actions/setup-android@v3 - name: Generate Dokka diff --git a/.github/workflows/issue_action.yml b/.github/workflows/issue_action.yml index 7acb6a0870..aa621d1666 100644 --- a/.github/workflows/issue_action.yml +++ b/.github/workflows/issue_action.yml @@ -14,6 +14,7 @@ jobs: with: app_id: ${{ secrets.GH_APP_ID }} private_key: ${{ secrets.GH_APP_KEY }} + - name: Similarity analysis id: similarity uses: actions-cool/issues-similarity-analysis@v1 @@ -25,6 +26,7 @@ jobs: ### Your issue looks similar to these issues: Please close if duplicate. comment-body: '${index}. ${similarity} #${number}' + - name: Label if possible duplicate if: steps.similarity.outputs.similar-issues-found =='true' uses: actions/github-script@v8 @@ -37,7 +39,9 @@ jobs: repo: context.repo.repo, labels: ["possible duplicate"] }) + - uses: actions/checkout@v5 + - name: Automatically close issues that dont follow the issue template uses: lucasbento/auto-close-issues@v1.0.2 with: @@ -46,6 +50,7 @@ jobs: @${issue.user.login}: hello! :wave: This issue is being automatically closed because it does not follow the issue template." closed-issues-label: "invalid" + - name: Check if issue mentions a provider id: provider_check env: @@ -55,6 +60,7 @@ jobs: pip3 install httpx RES="$(python3 ./check_issue.py)" echo "name=${RES}" >> $GITHUB_OUTPUT + - name: Comment if issue mentions a provider if: steps.provider_check.outputs.name != 'none' uses: actions-cool/issues-helper@v3 @@ -66,6 +72,7 @@ jobs: Please do not report any provider bugs here. This repository does not contain any providers. Please find the appropriate repository and report your issue there or join the [discord](https://discord.gg/5Hus6fM). Found provider name: `${{ steps.provider_check.outputs.name }}` + - name: Label if mentions provider if: steps.provider_check.outputs.name != 'none' uses: actions/github-script@v8 @@ -78,11 +85,10 @@ jobs: repo: context.repo.repo, labels: ["possible provider issue"] }) + - name: Add eyes reaction to all issues uses: actions-cool/emoji-helper@v1.0.0 with: type: 'issue' token: ${{ steps.generate_token.outputs.token }} emoji: 'eyes' - - diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index ad76b66d01..58f344572b 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -25,15 +25,17 @@ jobs: repository: "recloudstream/secrets" - uses: actions/checkout@v5 - - name: Set up JDK 17 + + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - java-version: '17' - distribution: 'adopt' + java-version: 25 + distribution: adopt cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew + - name: Fetch keystore id: fetch_keystore run: | @@ -58,7 +60,7 @@ jobs: MDL_API_KEY: ${{ secrets.MDL_API_KEY }} - name: Create pre-release - uses: "marvinpinto/action-automatic-releases@latest" + uses: marvinpinto/action-automatic-releases@latest with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "pre-release" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a4bac50374..249a7e937a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -8,11 +8,11 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - java-version: '17' - distribution: 'adopt' + java-version: 25 + distribution: adopt cache: gradle - name: Grant execute permission for gradlew diff --git a/.github/workflows/update_locales.yml b/.github/workflows/update_locales.yml index bd7a89f9f0..c8a2956b8b 100644 --- a/.github/workflows/update_locales.yml +++ b/.github/workflows/update_locales.yml @@ -23,15 +23,17 @@ jobs: app_id: ${{ secrets.GH_APP_ID }} private_key: ${{ secrets.GH_APP_KEY }} repository: "recloudstream/cloudstream" + - uses: actions/checkout@v5 with: token: ${{ steps.generate_token.outputs.token }} + - name: Install dependencies - run: | - pip3 install lxml requests + run: pip3 install lxml requests + - name: Edit files - run: | - python3 .github/locales.py + run: python3 .github/locales.py + - name: Commit to the repo run: | git config --local user.email "111277985+recloudstream[bot]@users.noreply.github.com" diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 601e9ac179..617baa5bfa 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,7 +8,6 @@ plugins { id("com.android.application") id("kotlin-android") id("org.jetbrains.dokka") - } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -139,6 +138,14 @@ android { targetCompatibility = JavaVersion.toVersion(javaTarget.target) } + java { + // Use Java 17 toolchain even if a higher JDK runs the build. + // We still use Java 8 for now which higher JDKs have deprecated. + toolchain { + languageVersion.set(JavaLanguageVersion.of(libs.versions.jdkToolchain.get())) + } + } + lint { abortOnError = false checkReleaseBuilds = false diff --git a/gradle.properties b/gradle.properties index 8dd6a87fc8..add9d67c24 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,3 +27,6 @@ org.gradle.configuration-cache=true # Dokka Gradle plugin V1 is deprecated, and will be removed in Dokka version 2.1.0 org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true + +# Compiling with Java 8 is deprecated but we still use it for now +android.javaCompile.suppressSourceTargetDeprecationWarning=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7a4b75b9a2..a49e52b834 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -46,6 +46,7 @@ workRuntime = "2.10.5" workRuntimeKtx = "2.10.5" jvmTarget = "1.8" +jdkToolchain = "17" minSdk = "21" compileSdk = "36" targetSdk = "35" diff --git a/gradlew b/gradlew index cccdd3d517..3bdf62dce1 100755 --- a/gradlew +++ b/gradlew @@ -28,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS="--enable-native-access=ALL-UNNAMED" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/gradlew.bat b/gradlew.bat index f9553162f1..734c16f06c 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="--enable-native-access=ALL-UNNAMED" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome