From cb5adaacddf11073441d4633205ebc488960b32c Mon Sep 17 00:00:00 2001 From: Oscar Wahltinez Date: Wed, 15 Apr 2020 11:12:05 -0400 Subject: [PATCH] Add GitHub Actions workflow This enables automatic builds for new commits and PRs in the master branch. This sample is currently **green**, see build logs: + GRADLE_OPTS=' -Xms4g -Xmx4g' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process' + GRADLE_OPTS=' -Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process -Dfile.encoding=UTF-8' + export GRADLE_OPTS ++ find . -name gradlew + for GRADLEW in '`find . -name "gradlew"`' ++ dirname ./BasicSensorsApiKotlin/gradlew + SAMPLE=./BasicSensorsApiKotlin + bash ./BasicSensorsApiKotlin/gradlew -p ./BasicSensorsApiKotlin -Pci --no-parallel --stacktrace assembleDebug > Configure project :app Kotlin plugin should be enabled before 'kotlin-android-extensions' > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:compileDebugAidl NO-SOURCE > Task :app:checkDebugManifest > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:mergeDebugShaders > Task :app:compileDebugShaders > Task :app:generateDebugAssets > Task :app:mergeDebugAssets > Task :app:processDebugJavaRes NO-SOURCE > Task :app:checkDebugDuplicateClasses > Task :app:mergeDebugResources > Task :app:processDebugResources > Task :app:compileDebugKotlin > Task :app:javaPreCompileDebug > Task :app:compileDebugJavaWithJavac > Task :app:compileDebugSources > Task :app:mergeDebugJavaResource > Task :app:transformClassesWithDexBuilderForDebug > Task :app:validateSigningDebug > Task :app:signingConfigWriterDebug > Task :app:mergeExtDexDebug > Task :app:mergeDebugJniLibFolders > Task :app:mergeDebugNativeLibs > Task :app:stripDebugDebugSymbols > Task :app:mergeDexDebug > Task :app:packageDebug > Task :app:assembleDebug BUILD SUCCESSFUL in 43s 25 actionable tasks: 25 executed + for GRADLEW in '`find . -name "gradlew"`' ++ dirname ./StepCounterKotlin/gradlew + SAMPLE=./StepCounterKotlin + bash ./StepCounterKotlin/gradlew -p ./StepCounterKotlin -Pci --no-parallel --stacktrace assembleDebug > Configure project :app Kotlin plugin should be enabled before 'kotlin-android-extensions' > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:compileDebugAidl NO-SOURCE > Task :app:checkDebugManifest > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:mergeDebugShaders > Task :app:compileDebugShaders > Task :app:generateDebugAssets > Task :app:mergeDebugAssets > Task :app:mergeDebugResources > Task :app:processDebugResources > Task :app:compileDebugKotlin > Task :app:javaPreCompileDebug > Task :app:compileDebugJavaWithJavac > Task :app:compileDebugSources > Task :app:processDebugJavaRes NO-SOURCE > Task :app:checkDebugDuplicateClasses > Task :app:mergeDebugJavaResource > Task :app:transformClassesWithDexBuilderForDebug > Task :app:validateSigningDebug > Task :app:signingConfigWriterDebug > Task :app:mergeExtDexDebug > Task :app:mergeDebugJniLibFolders > Task :app:mergeDebugNativeLibs > Task :app:stripDebugDebugSymbols > Task :app:mergeDexDebug > Task :app:packageDebug > Task :app:assembleDebug BUILD SUCCESSFUL in 30s 25 actionable tasks: 25 executed + for GRADLEW in '`find . -name "gradlew"`' ++ dirname ./BasicRecordingApiKotlin/gradlew + SAMPLE=./BasicRecordingApiKotlin + bash ./BasicRecordingApiKotlin/gradlew -p ./BasicRecordingApiKotlin -Pci --no-parallel --stacktrace assembleDebug > Configure project :app Kotlin plugin should be enabled before 'kotlin-android-extensions' > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:compileDebugAidl NO-SOURCE > Task :app:checkDebugManifest > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:mergeDebugShaders > Task :app:compileDebugShaders > Task :app:generateDebugAssets > Task :app:mergeDebugAssets > Task :app:processDebugJavaRes NO-SOURCE > Task :app:mergeDebugResources > Task :app:processDebugResources > Task :app:compileDebugKotlin > Task :app:javaPreCompileDebug > Task :app:compileDebugJavaWithJavac > Task :app:compileDebugSources > Task :app:checkDebugDuplicateClasses > Task :app:mergeDebugJavaResource > Task :app:transformClassesWithDexBuilderForDebug > Task :app:validateSigningDebug > Task :app:signingConfigWriterDebug > Task :app:mergeExtDexDebug > Task :app:mergeDebugJniLibFolders > Task :app:mergeDebugNativeLibs > Task :app:stripDebugDebugSymbols > Task :app:mergeDexDebug > Task :app:packageDebug > Task :app:assembleDebug BUILD SUCCESSFUL in 35s 25 actionable tasks: 25 executed + for GRADLEW in '`find . -name "gradlew"`' ++ dirname ./BasicHistoryApiKotlin/gradlew + SAMPLE=./BasicHistoryApiKotlin + bash ./BasicHistoryApiKotlin/gradlew -p ./BasicHistoryApiKotlin -Pci --no-parallel --stacktrace assembleDebug > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:compileDebugAidl NO-SOURCE > Task :app:checkDebugManifest > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:mergeDebugShaders > Task :app:compileDebugShaders > Task :app:generateDebugAssets > Task :app:mergeDebugAssets > Task :app:processDebugJavaRes NO-SOURCE > Task :app:mergeDebugResources > Task :app:processDebugResources > Task :app:compileDebugKotlin w: /Users/owahltinez/Sandbox/samples/fit-samples/BasicHistoryApiKotlin/app/src/main/java/com/google/android/gms/fit/samples/basichistoryapikotlin/MainActivity.kt: (128, 54): Conditional branch result of type Task!> is implicitly cast to Any w: /Users/owahltinez/Sandbox/samples/fit-samples/BasicHistoryApiKotlin/app/src/main/java/com/google/android/gms/fit/samples/basichistoryapikotlin/MainActivity.kt: (129, 54): Conditional branch result of type Task is implicitly cast to Any w: /Users/owahltinez/Sandbox/samples/fit-samples/BasicHistoryApiKotlin/app/src/main/java/com/google/android/gms/fit/samples/basichistoryapikotlin/MainActivity.kt: (130, 45): Conditional branch result of type Unit is implicitly cast to Any > Task :app:javaPreCompileDebug > Task :app:compileDebugJavaWithJavac > Task :app:compileDebugSources > Task :app:checkDebugDuplicateClasses > Task :app:mergeDebugJavaResource > Task :app:transformClassesWithDexBuilderForDebug > Task :app:validateSigningDebug > Task :app:signingConfigWriterDebug > Task :app:mergeExtDexDebug > Task :app:mergeDebugJniLibFolders > Task :app:mergeDebugNativeLibs > Task :app:stripDebugDebugSymbols > Task :app:mergeDexDebug > Task :app:packageDebug > Task :app:assembleDebug BUILD SUCCESSFUL in 55s 25 actionable tasks: 25 executed + for GRADLEW in '`find . -name "gradlew"`' ++ dirname ./BasicHistorySessionsKotlin/gradlew + SAMPLE=./BasicHistorySessionsKotlin + bash ./BasicHistorySessionsKotlin/gradlew -p ./BasicHistorySessionsKotlin -Pci --no-parallel --stacktrace assembleDebug > Configure project :app Kotlin plugin should be enabled before 'kotlin-android-extensions' > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:compileDebugAidl NO-SOURCE > Task :app:checkDebugManifest > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:mergeDebugResources > Task :app:processDebugResources > Task :app:compileDebugKotlin w: /Users/owahltinez/Sandbox/samples/fit-samples/BasicHistorySessionsKotlin/app/src/main/java/com/google/android/gms/fit/samples/basichistorysessionskotlin/MainActivity.kt: (156, 59): Conditional branch result of type Task!> is implicitly cast to Any w: /Users/owahltinez/Sandbox/samples/fit-samples/BasicHistorySessionsKotlin/app/src/main/java/com/google/android/gms/fit/samples/basichistorysessionskotlin/MainActivity.kt: (157, 48): Conditional branch result of type Unit is implicitly cast to Any > Task :app:javaPreCompileDebug > Task :app:compileDebugJavaWithJavac > Task :app:compileDebugSources > Task :app:mergeDebugShaders > Task :app:compileDebugShaders > Task :app:generateDebugAssets > Task :app:mergeDebugAssets > Task :app:processDebugJavaRes NO-SOURCE > Task :app:checkDebugDuplicateClasses > Task :app:mergeDebugJavaResource > Task :app:transformClassesWithDexBuilderForDebug > Task :app:validateSigningDebug > Task :app:signingConfigWriterDebug > Task :app:mergeExtDexDebug > Task :app:mergeDebugJniLibFolders > Task :app:mergeDebugNativeLibs > Task :app:stripDebugDebugSymbols > Task :app:mergeDexDebug > Task :app:packageDebug > Task :app:assembleDebug BUILD SUCCESSFUL in 37s 25 actionable tasks: 25 executed --- .github/scripts/gradlew_recursive.sh | 36 +++++++++++++++++++++++ .github/workflows/android.yml | 43 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100755 .github/scripts/gradlew_recursive.sh create mode 100644 .github/workflows/android.yml diff --git a/.github/scripts/gradlew_recursive.sh b/.github/scripts/gradlew_recursive.sh new file mode 100755 index 0000000..e554ee8 --- /dev/null +++ b/.github/scripts/gradlew_recursive.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xe + +# Default Gradle settings are not optimal for Android builds, override them +# here to make the most out of the GitHub Actions build servers +GRADLE_OPTS="$GRADLE_OPTS -Xms4g -Xmx4g" +GRADLE_OPTS="$GRADLE_OPTS -XX:+HeapDumpOnOutOfMemoryError" +GRADLE_OPTS="$GRADLE_OPTS -Dorg.gradle.daemon=false" +GRADLE_OPTS="$GRADLE_OPTS -Dorg.gradle.workers.max=2" +GRADLE_OPTS="$GRADLE_OPTS -Dkotlin.incremental=false" +GRADLE_OPTS="$GRADLE_OPTS -Dkotlin.compiler.execution.strategy=in-process" +GRADLE_OPTS="$GRADLE_OPTS -Dfile.encoding=UTF-8" +export GRADLE_OPTS + +# Crawl all gradlew files which indicate an Android project +# You may edit this if your repo has a different project structure +for GRADLEW in `find . -name "gradlew"` ; do + SAMPLE=$(dirname "${GRADLEW}") + # Tell Gradle that this is a CI environment and disable parallel compilation + bash "$GRADLEW" -p "$SAMPLE" -Pci --no-parallel --stacktrace $@ +done diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 0000000..d8d296d --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,43 @@ +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Android CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + name: Build + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v1 + - name: set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build project + run: .github/scripts/gradlew_recursive.sh assembleDebug + - name: Zip artifacts + run: zip -r assemble.zip . -i '**/build/*.apk' '**/build/*.aab' '**/build/*.aar' '**/build/*.so' + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: assemble + path: assemble.zip