resources:
- repo: self
steps:
- bash: |
    if [ "$ELECTRON_RELEASE" == "1" ]; then
      echo 'Bootstrapping Electron for release build'
      script/bootstrap.py --target_arch=$TARGET_ARCH
    else
      echo 'Bootstrapping Electron for debug build'
      script/bootstrap.py --target_arch=$TARGET_ARCH --dev
    fi
  name: Bootstrap

- bash: |
    npm run lint
  name: Lint
  condition: and(succeeded(), ne(variables['ELECTRON_RELEASE'], '1'))

- bash: |
    if [ "$ELECTRON_RELEASE" == "1" ]; then
      echo 'Building Electron for release'
      script/build.py -c R
    else
      echo 'Building Electron for debug'
      script/build.py -c D
    fi
  name: Build

- bash: |
    echo 'Creating Electron release distribution'
    script/create-dist.py
  name: Create_distribution
  condition: and(succeeded(), eq(variables['ELECTRON_RELEASE'], '1'))

- bash: |
    if [ "$TRIGGERED_BY_API" != "1" ]; then
      echo 'Uploading Electron release distribution to github releases'
      ELECTRON_S3_BUCKET="$(s3_bucket)" ELECTRON_S3_ACCESS_KEY="$(s3_access_key)" ELECTRON_S3_SECRET_KEY="$(s3_secret_key)" ELECTRON_GITHUB_TOKEN="$(github_token)" script/upload.py
    else
      echo 'Uploading Electron release distribution to s3'
      ELECTRON_S3_BUCKET="$(s3_bucket)" ELECTRON_S3_ACCESS_KEY="$(s3_access_key)" ELECTRON_S3_SECRET_KEY="$(s3_secret_key)" ELECTRON_GITHUB_TOKEN="$(github_token)" script/upload.py --upload_to_s3
    fi
  name: Upload_distribution
  condition: and(succeeded(), eq(variables['ELECTRON_RELEASE'], '1'))

- bash: |
    echo 'Testing Electron debug build'
    mkdir junit
    export MOCHA_FILE="junit/test-results.xml"
    export MOCHA_REPORTER="mocha-junit-reporter"
    script/test.py --ci
  name: Test
  condition: and(succeeded(), ne(variables['ELECTRON_RELEASE'], '1'))

- bash: |
    echo 'Verifying ffmpeg on debug build'
    script/verify-ffmpeg.py
  name: Verify_FFmpeg
  condition: and(succeeded(), ne(variables['ELECTRON_RELEASE'], '1'))

- task: PublishTestResults@2
  displayName: Publish Test Results
  inputs:
    testResultsFiles: 'test-results.xml'
    searchFolder: junit
  condition: and(always(), ne(variables['ELECTRON_RELEASE'], '1'))

- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
