mirror of
https://github.com/TeamNewPipe/NewPipeExtractor.git
synced 2025-04-27 15:30:34 +05:30
* Cache gradle wrapper distributions * Don't always show gradle welcome message * Deduplicated code * Make it possible to select downloader and manually execute a run
70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
downloaderType:
|
|
description: 'Downloader Type'
|
|
type: choice
|
|
options:
|
|
- MOCK
|
|
- REAL
|
|
schedule:
|
|
# once per day
|
|
- cron: 0 0 * * *
|
|
push:
|
|
branches:
|
|
- dev
|
|
- master
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: set up JDK 11
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '11'
|
|
distribution: 'temurin'
|
|
|
|
- name: Cache Gradle wrapper dists
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.gradle/wrapper/dists
|
|
key: ${{ runner.os }}-gradle-wrapper-dists-${{ hashFiles('gradle/wrapper/**') }}
|
|
restore-keys: ${{ runner.os }}-gradle-wrapper-dists
|
|
|
|
- name: Cache Gradle dependencies
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.gradle/caches
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
|
restore-keys: ${{ runner.os }}-gradle
|
|
|
|
# See gradle file for difference between downloaders
|
|
- name: Build and run Tests
|
|
run: |
|
|
downloader_type="${{ github.event.inputs.downloaderType || 'MOCK' }}"
|
|
if [[ "$GITHUB_EVENT_NAME" == 'schedule' ]]; then
|
|
downloader_type="REAL"
|
|
fi
|
|
|
|
echo "Running with $downloader_type downloader"
|
|
./gradlew check \
|
|
-Dorg.gradle.welcome=never \
|
|
--stacktrace \
|
|
-Ddownloader=$downloader_type
|
|
|
|
- name: Upload test reports when failure occurs
|
|
uses: actions/upload-artifact@v4
|
|
if: failure()
|
|
with:
|
|
name: NewPipeExtractor-test-reports
|
|
path: extractor/build/reports/tests/test/**
|