# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: Snapshot

on:
  push:
    branches: [ '3.x' ]

jobs:
  build:

    runs-on: ubuntu-latest
    env:
      # ------------------------------------------------------------------------------ 
      CI_BUILD_NUMBER: ${{ github.run_number }}
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 8
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '8'
    - name: Cache Gradle packages
      uses: actions/cache@v2.1.5
      with:
        path: ~/.gradle/caches
        key: ${{ runner.os }}-gradle-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/*.gradle') }}
        restore-keys: ${{ runner.os }}-gradle-${{ secrets.CACHE_VERSION }}
    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Grant execute permission for push
      run: chmod +x push_javadoc.sh
    - name: Build and Snapshot branch
      run: ./gradlew -PreleaseMode=branch -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" build --stacktrace
      env:
        # Define secrets at https://github.com/ReactiveX/RxJava/settings/secrets/actions
        # ------------------------------------------------------------------------------ 
        bintrayUser: ${{ secrets.BINTRAY_USER }}
        bintrayKey: ${{ secrets.BINTRAY_KEY }}
        sonatypeUsername: ${{ secrets.SONATYPE_USER }}
        sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
    - name: Upload to Codecov  
      uses: codecov/codecov-action@v1
    - name: Push Javadocs
      run: ./push_javadoc.sh
        # Define secrets at https://github.com/ReactiveX/RxJava/settings/secrets/actions
        # ------------------------------------------------------------------------------
      env:
        JAVADOCS_TOKEN: ${{ secrets.JAVADOCS_TOKEN }}
 
