Apply default headers to shared downloader client #152
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - dev | |
| - master | |
| - refactor | |
| - release** | |
| - material | |
| - pipe | |
| paths-ignore: | |
| - 'README.md' | |
| - 'doc/**' | |
| - 'fastlane/**' | |
| - 'assets/**' | |
| - '.github/**/*.md' | |
| - '.github/FUNDING.yml' | |
| - '.github/ISSUE_TEMPLATE/**' | |
| push: | |
| branches: | |
| - dev | |
| - master | |
| - material | |
| - pipe | |
| paths-ignore: | |
| - 'README.md' | |
| - 'doc/**' | |
| - 'fastlane/**' | |
| - 'assets/**' | |
| - '.github/**/*.md' | |
| - '.github/FUNDING.yml' | |
| - '.github/ISSUE_TEMPLATE/**' | |
| jobs: | |
| build-and-test-jvm: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Checkout latest PipePipeExtractor source | |
| run: | | |
| set -euo pipefail | |
| mkdir -p external | |
| if [ ! -d external/NewPipeExtractor/.git ]; then | |
| rm -rf external/NewPipeExtractor | |
| git init external/NewPipeExtractor | |
| git -C external/NewPipeExtractor remote add origin https://github.com/wizdom13/PipePipeExtractor | |
| fi | |
| git -C external/NewPipeExtractor fetch --depth 1 origin main | |
| git -C external/NewPipeExtractor checkout --detach FETCH_HEAD | |
| - name: Verify PipePipeExtractor source | |
| run: | | |
| git -C external/NewPipeExtractor remote -v | |
| git -C external/NewPipeExtractor remote get-url origin | grep -q "github.com/wizdom13/PipePipeExtractor" | |
| git -C external/NewPipeExtractor rev-parse HEAD | |
| test -d external/NewPipeExtractor/extractor | |
| grep -n "JavaLanguageVersion.of(21)" external/NewPipeExtractor/build.gradle | |
| grep -n "options.release = 21" external/NewPipeExtractor/build.gradle | |
| - name: Clean PipePipeExtractor outputs | |
| run: | | |
| rm -rf external/NewPipeExtractor/build | |
| rm -rf external/NewPipeExtractor/extractor/build | |
| rm -rf external/NewPipeExtractor/timeago-parser/build | |
| - uses: gradle/actions/wrapper-validation@v6 | |
| - name: create and checkout branch | |
| if: github.event_name == 'pull_request' | |
| env: | |
| BRANCH: ${{ github.head_ref }} | |
| run: git checkout -B "$BRANCH" | |
| - name: set up JDK | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: 21 | |
| distribution: "temurin" | |
| cache: 'gradle' | |
| - name: Verify PipePipeExtractor Java bytecode | |
| run: | | |
| ./gradlew -p external/NewPipeExtractor :extractor:clean :extractor:compileJava --stacktrace | |
| javap -verbose -classpath external/NewPipeExtractor/extractor/build/classes/java/main org.schabi.newpipe.extractor.NewPipe | grep "major version: 65" | |
| - name: Build debug APK and run jvm tests | |
| run: ./gradlew clean assembleDebug lintDebug testDebugUnitTest --stacktrace -DskipFormatKtlint | |
| - name: Verify debug APK identity | |
| run: | | |
| APK_PATH="$(find app/build/outputs/apk/debug -name '*.apk' | head -n 1)" | |
| test -n "$APK_PATH" | |
| AAPT="$ANDROID_HOME/build-tools/$(ls "$ANDROID_HOME/build-tools" | sort -V | tail -n 1)/aapt" | |
| "$AAPT" dump badging "$APK_PATH" | tee "$RUNNER_TEMP/debug-apk-badging.txt" | |
| grep -q "package: name='org.wisso.newpipematerial.debug'" "$RUNNER_TEMP/debug-apk-badging.txt" | |
| grep -q "application-label:'NewPipe Material Debug'" "$RUNNER_TEMP/debug-apk-badging.txt" | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: newpipe-material-debug-apk | |
| path: app/build/outputs/apk/debug/*.apk | |
| test-android: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| matrix: | |
| include: | |
| - api-level: 23 | |
| target: default | |
| arch: x86 | |
| - api-level: 35 | |
| target: default | |
| arch: x86_64 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Checkout latest PipePipeExtractor source | |
| run: | | |
| set -euo pipefail | |
| mkdir -p external | |
| if [ ! -d external/NewPipeExtractor/.git ]; then | |
| rm -rf external/NewPipeExtractor | |
| git init external/NewPipeExtractor | |
| git -C external/NewPipeExtractor remote add origin https://github.com/wizdom13/PipePipeExtractor | |
| fi | |
| git -C external/NewPipeExtractor fetch --depth 1 origin main | |
| git -C external/NewPipeExtractor checkout --detach FETCH_HEAD | |
| - name: Verify PipePipeExtractor source | |
| run: | | |
| git -C external/NewPipeExtractor remote -v | |
| git -C external/NewPipeExtractor remote get-url origin | grep -q "github.com/wizdom13/PipePipeExtractor" | |
| git -C external/NewPipeExtractor rev-parse HEAD | |
| test -d external/NewPipeExtractor/extractor | |
| grep -n "JavaLanguageVersion.of(21)" external/NewPipeExtractor/build.gradle | |
| grep -n "options.release = 21" external/NewPipeExtractor/build.gradle | |
| - name: Clean PipePipeExtractor outputs | |
| run: | | |
| rm -rf external/NewPipeExtractor/build | |
| rm -rf external/NewPipeExtractor/extractor/build | |
| rm -rf external/NewPipeExtractor/timeago-parser/build | |
| - name: Enable KVM | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: set up JDK | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: 21 | |
| distribution: "temurin" | |
| cache: 'gradle' | |
| - name: Run android tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ matrix.api-level }} | |
| target: ${{ matrix.target }} | |
| arch: ${{ matrix.arch }} | |
| script: ./gradlew connectedCheck --stacktrace | |
| - name: Upload test report when tests fail | |
| uses: actions/upload-artifact@v7 | |
| if: failure() | |
| with: | |
| name: android-test-report-api${{ matrix.api-level }} | |
| path: app/build/reports/androidTests/connected/** |