name: Cordova HTTP Plugin CI

on: [push]

env:
  nodejs: '10.x'

jobs:
  test-www-interface:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Install Node.js ${{ env.nodejs }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ env.nodejs }}
    - name: Install node modules
      run: npm ci
    - name: Run WWW interface tests
      run: npm run testjs

  build-ios:
    runs-on: macOS-latest
    steps:
    - uses: actions/checkout@v1
    - name: Install Node.js ${{ env.nodejs }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ env.nodejs }}
    - name: Install node modules
      run: npm ci
    - name: Update test cert for httpbin.org
      run: npm run updatecert
    - name: Build test app
      run: scripts/build-test-app.sh --ios --emulator

  build-android:
    runs-on: ubuntu-latest
    env:
      BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
      BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
    steps:
    - uses: actions/checkout@v1
    - name: Install Node.js ${{ env.nodejs }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ env.nodejs }}
    - name: Install node modules
      run: npm ci
    - name: Install JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Update test cert for httpbin.org
      run: npm run updatecert
    - name: Add workaround for mipsel reference
      run: sudo mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64
    - name: Build test app
      run: scripts/build-test-app.sh --android --device
    - name: Upload artifact to BrowserStack
      if: env.BROWSERSTACK_USERNAME != ''
      run: scripts/upload-browserstack.sh --android
    - name: Run e2e tests
      if: env.BROWSERSTACK_USERNAME != ''
      run: scripts/test-app.sh --android --device
