Drop Travis and move to GitHub actions (#694)
parent
129b43e657
commit
79d00d5eba
@ -0,0 +1,92 @@ |
|||||||
|
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions |
||||||
|
name: Build |
||||||
|
on: |
||||||
|
push: |
||||||
|
branches: |
||||||
|
- master |
||||||
|
pull_request: |
||||||
|
env: |
||||||
|
TRAVIS: true |
||||||
|
jobs: |
||||||
|
ANDROID_BASE_CHECKS: |
||||||
|
name: Base Checks |
||||||
|
runs-on: ubuntu-latest |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v1 |
||||||
|
- uses: actions/setup-java@v1 |
||||||
|
with: |
||||||
|
java-version: 1.8 |
||||||
|
- name: Perform base checks |
||||||
|
run: ./gradlew demo:assembleDebug cameraview:javadoc |
||||||
|
ANDROID_UNIT_TESTS: |
||||||
|
name: Unit Tests |
||||||
|
runs-on: ubuntu-latest |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v1 |
||||||
|
- uses: actions/setup-java@v1 |
||||||
|
with: |
||||||
|
java-version: 1.8 |
||||||
|
- name: Execute unit tests |
||||||
|
run: ./gradlew cameraview:testDebugUnitTest |
||||||
|
- name: Upload unit tests artifact |
||||||
|
uses: actions/upload-artifact@v1 |
||||||
|
with: |
||||||
|
name: unit_tests |
||||||
|
path: ./cameraview/build/jacoco/ |
||||||
|
ANDROID_EMULATOR_TESTS: |
||||||
|
name: Emulator Tests |
||||||
|
runs-on: macOS-latest |
||||||
|
strategy: |
||||||
|
matrix: |
||||||
|
EMULATOR_API: [22] |
||||||
|
EMULATOR_ARCH: [x86_64] |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v1 |
||||||
|
- uses: actions/setup-java@v1 |
||||||
|
with: |
||||||
|
java-version: 1.8 |
||||||
|
- name: Execute emulator tests |
||||||
|
uses: reactivecircus/android-emulator-runner@v1 |
||||||
|
with: |
||||||
|
api-level: ${{ matrix.EMULATOR_API }} |
||||||
|
arch: ${{ matrix.EMULATOR_ARCH }} |
||||||
|
disable-animations: true |
||||||
|
headless: true |
||||||
|
script: ./gradlew cameraview:connectedCheck |
||||||
|
- name: Upload emulator tests artifact |
||||||
|
uses: actions/upload-artifact@v1 |
||||||
|
with: |
||||||
|
name: emulator_tests |
||||||
|
path: ./cameraview/build/outputs/code_coverage/debugAndroidTest/connected |
||||||
|
CODE_COVERAGE: |
||||||
|
name: Code Coverage Report |
||||||
|
runs-on: ubuntu-latest |
||||||
|
needs: [ANDROID_UNIT_TESTS, ANDROID_EMULATOR_TESTS] |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v1 |
||||||
|
- uses: actions/setup-java@v1 |
||||||
|
with: |
||||||
|
java-version: 1.8 |
||||||
|
- name: Download unit tests artifact |
||||||
|
uses: actions/download-artifact@v1 |
||||||
|
with: |
||||||
|
name: unit_tests |
||||||
|
path: ./cameraview/build/jacoco/ |
||||||
|
- name: Download emulator tests artifact |
||||||
|
uses: actions/download-artifact@v1 |
||||||
|
with: |
||||||
|
name: emulator_tests |
||||||
|
path: ./cameraview/build/outputs/code_coverage/debugAndroidTest/connected |
||||||
|
- name: Create merged coverage report |
||||||
|
run: ./gradlew cameraview:mergeCoverageReports |
||||||
|
- name: Upload merged coverage report (GitHub) |
||||||
|
uses: actions/upload-artifact@v1 |
||||||
|
with: |
||||||
|
name: report |
||||||
|
path: ./cameraview/build/reports/mergedCoverageReport |
||||||
|
- name: Upload merged coverage report (Codecov) |
||||||
|
uses: codecov/codecov-action@v1 |
||||||
|
with: |
||||||
|
token: ${{ secrets.CODECOV_KEY }} |
||||||
|
file: ./cameraview/build/reports/mergedCoverageReport/* |
||||||
|
fail_ci_if_error: true |
@ -0,0 +1,18 @@ |
|||||||
|
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions |
||||||
|
name: Deploy |
||||||
|
on: [release] |
||||||
|
jobs: |
||||||
|
BINTRAY_UPLOAD: |
||||||
|
name: Bintray Upload |
||||||
|
runs-on: ubuntu-latest |
||||||
|
env: |
||||||
|
TRAVIS: true |
||||||
|
BINTRAY_USER: ${{ secrets.BINTRAY_USER }} |
||||||
|
BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v1 |
||||||
|
- uses: actions/setup-java@v1 |
||||||
|
with: |
||||||
|
java-version: 1.8 |
||||||
|
- name: Perform bintray upload |
||||||
|
run: ./gradlew bintrayUpload |
@ -1,90 +0,0 @@ |
|||||||
# https://github.com/andstatus/andstatus/blob/master/.travis.yml |
|
||||||
|
|
||||||
language: android |
|
||||||
|
|
||||||
branches: |
|
||||||
only: |
|
||||||
- master |
|
||||||
- /^v\d+\.\d+\.\d+$/ |
|
||||||
- /^v\d+\.\d+\.\d+-beta\d+$/ |
|
||||||
- /^v\d+\.\d+\.\d+-rc\d+$/ |
|
||||||
|
|
||||||
sudo: false |
|
||||||
|
|
||||||
jdk: |
|
||||||
- oraclejdk8 |
|
||||||
|
|
||||||
env: |
|
||||||
global: |
|
||||||
- EMULATOR_API=22 # 24 has some issues, probably some overlayed window |
|
||||||
- EMULATOR_ABI=x86_64 # seems to work with emulator v29. |
|
||||||
- EMULATOR_TAG=default # can be google_apis |
|
||||||
- PATH=$ANDROID_HOME:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH |
|
||||||
|
|
||||||
android: |
|
||||||
components: |
|
||||||
- tools |
|
||||||
- platform-tools |
|
||||||
- build-tools-28.0.3 |
|
||||||
- android-28 |
|
||||||
- doc-28 |
|
||||||
|
|
||||||
install: |
|
||||||
# Setup |
|
||||||
- echo $ANDROID_HOME # We assume this is correctly set when setting path |
|
||||||
- sdkmanager --list || true # Look at the packages |
|
||||||
- echo yes | sdkmanager "tools" # Ensure tools is updated |
|
||||||
- echo yes | sdkmanager "emulator" # Ensure emulator is present |
|
||||||
|
|
||||||
# Install emulator |
|
||||||
# The channel=4 line looks into canary which brings in v29. |
|
||||||
# The previous version v28 was broken: |
|
||||||
# https://travis-ci.community/t/android-emulators-not-starting-for-the-last-few-days-late-march-2019/2871/11?u=mikehardy |
|
||||||
- export EMULATOR="system-images;android-$EMULATOR_API;$EMULATOR_TAG;$EMULATOR_ABI" |
|
||||||
- echo yes | sdkmanager "platforms;android-$EMULATOR_API" # Install sdk for the emulator |
|
||||||
- echo yes | sdkmanager --channel=4 "$EMULATOR" # Install system image |
|
||||||
- sdkmanager --list || true # Check everything is updated |
|
||||||
|
|
||||||
# Create adn start emulator |
|
||||||
- echo no | avdmanager create avd -n test -k "$EMULATOR" -f # Create emulator virtual device |
|
||||||
- which emulator # ensure we are using the right emulator ($ANDROID_HOME/emulator/emulator) |
|
||||||
- emulator -avd test -no-window -no-accel -no-snapshot -camera-back emulated -camera-front emulated -memory 2048 -writable-system & # Launch |
|
||||||
- adb wait-for-device # Wait for adb process |
|
||||||
- adb remount # Mount as writable |
|
||||||
|
|
||||||
before_script: |
|
||||||
# Wait for emulator |
|
||||||
- android-wait-for-emulator # Wait for emulator ready to interact |
|
||||||
- adb shell settings put global window_animation_scale 0 & # Disable animations |
|
||||||
- adb shell settings put global transition_animation_scale 0 & # Disable animations |
|
||||||
- adb shell settings put global animator_duration_scale 0 & # Disable animations |
|
||||||
|
|
||||||
# Unlock and configure logs. |
|
||||||
# Would be great to use -v color to adb logcat but looks not supported on travis. |
|
||||||
- sleep 20 # Sleep 20 seconds just in case |
|
||||||
- adb shell input keyevent 82 & # Dispatch unlock event |
|
||||||
- adb logcat --help # See if this version supports color |
|
||||||
- adb logcat -c # Clear logcat |
|
||||||
- adb logcat Test:V TestRunner:V CameraView:V CameraController:V Camera1:V WorkerHandler:V THREAD_STATE:S *:E & |
|
||||||
# - export LOGCAT_PID=$! # Save PID of the logcat process. Should kill later with kill $LOGCAT_PID |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
script: |
|
||||||
- ./gradlew clean demo:assembleDebug cameraview:testDebugUnitTest cameraview:connectedCheck cameraview:mergedCoverageReport cameraview:javadoc |
|
||||||
|
|
||||||
after_success: |
|
||||||
- bash <(curl -s https://codecov.io/bash) -s "*/build/reports/mergedCoverageReport/" |
|
||||||
|
|
||||||
cache: |
|
||||||
directories: |
|
||||||
- $HOME/.gradle |
|
||||||
- $HOME/.m2/repository |
|
||||||
|
|
||||||
deploy: |
|
||||||
provider: script |
|
||||||
script: ./gradlew bintrayUpload |
|
||||||
skip_cleanup: true |
|
||||||
on: |
|
||||||
branch: master |
|
||||||
tags: true |
|
Loading…
Reference in new issue