From fd077b85a2d25757e052edaa142d9d6b5bc24542 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 31 Jan 2020 08:02:11 +0000 Subject: [PATCH 1/4] Add Android build to GitHub Actions CI --- .github/workflows/ci.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5197ee439..b9e06e0d02 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -215,3 +215,19 @@ jobs: - name: Build OpenRCT2 shell: bash run: . scripts/setenv && build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug -DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DDISABLE_OPENGL=ON + android: + name: Android + runs-on: ubuntu-latest + container: + image: openrct2/openrct2-build:0.2.4-android + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Build OpenRCT2 + shell: bash + run: . scripts/setenv && cd src/openrct2-android && ./gradlew app:assemblePR + - name: Upload artifacts (CI) + uses: actions/upload-artifact@v1 + with: + name: "OpenRCT2-Android" + path: src/openrct2-android/app/build/outputs/apk From a64c9e9924256a370ae210a733431fcac1602f38 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 1 Feb 2020 15:41:24 +0000 Subject: [PATCH 2/4] Only build 32/64 ARM and package just apk file --- .github/workflows/ci.yml | 10 ++++++++-- src/openrct2-android/app/build.gradle | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9e06e0d02..befddcb51b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -225,9 +225,15 @@ jobs: uses: actions/checkout@v1 - name: Build OpenRCT2 shell: bash - run: . scripts/setenv && cd src/openrct2-android && ./gradlew app:assemblePR + run: | + . scripts/setenv + pushd src/openrct2-android + ./gradlew app:assemblePR + popd + mkdir -p artifacts + mv src/openrct2-android/app/build/outputs/apk/arm/pr/app-arm-pr.apk artifacts/openrct2.apk - name: Upload artifacts (CI) uses: actions/upload-artifact@v1 with: name: "OpenRCT2-Android" - path: src/openrct2-android/app/build/outputs/apk + path: artifacts diff --git a/src/openrct2-android/app/build.gradle b/src/openrct2-android/app/build.gradle index 1904be2481..edd1a82e29 100644 --- a/src/openrct2-android/app/build.gradle +++ b/src/openrct2-android/app/build.gradle @@ -50,11 +50,13 @@ android { } flavorDimensions "version" + /* productFlavors { full { dimension "version" } } + */ externalNativeBuild { cmake { @@ -63,21 +65,25 @@ android { } productFlavors { + /* arm7 { ndk { abiFilters 'armeabi-v7a' } } + */ arm { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } } + /* x86 { ndk { abiFilters 'x86', 'x86_64' } } + */ } } From 12ee84a161b3ffe43289ecc62b24f942b3f20956 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 1 Feb 2020 16:47:49 +0000 Subject: [PATCH 3/4] Upload Android builds to openrct2.org --- .github/workflows/ci.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index befddcb51b..f544d589f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -231,9 +231,18 @@ jobs: ./gradlew app:assemblePR popd mkdir -p artifacts - mv src/openrct2-android/app/build/outputs/apk/arm/pr/app-arm-pr.apk artifacts/openrct2.apk + mv src/openrct2-android/app/build/outputs/apk/arm/pr/app-arm-pr.apk artifacts/openrct2-arm.apk - name: Upload artifacts (CI) uses: actions/upload-artifact@v1 with: name: "OpenRCT2-Android" path: artifacts + - name: Upload artifacts (openrct2.org) + shell: bash + run: | + . scripts/setenv -q + if [[ "$OPENRCT2_PUSH" == "true" ]]; then + upload-build artifacts/openrct2-arm.apk android-arm $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH + else + echo 'Not going to push build' + fi From a270ce46a5d6e9288975a77723c570b8b5e71afa Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 1 Feb 2020 16:47:57 +0000 Subject: [PATCH 4/4] Remove Android building from Travis --- .travis.yml | 60 ----------------------------------------------------- 1 file changed, 60 deletions(-) diff --git a/.travis.yml b/.travis.yml index aaa950cfde..0d73d69364 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: c before_install: - # Android jobs are triggered from cron and overwrite `before_script` part - - if [[ "$OPENRCT2_ANDROID" == "true" ]] ; then echo before_install not needed for Android jobs ; exit 0 ; fi - if [[ "z$OPENRCT2_ORG_TOKEN" != "z" && "$TRAVIS_PULL_REQUEST" == "false" && ("${TRAVIS_BRANCH}" =~ ^(develop|push/) || "z${TRAVIS_TAG}" != "z") ]] ; then echo "This build will get pushed!" ; echo "tag = ${TRAVIS_TAG}" ; echo "branch = ${TRAVIS_BRANCH}" ; fi @@ -53,62 +51,6 @@ matrix: env: OPENRCT2_CMAKE_OPTS="-G Ninja -DDISABLE_OPENGL=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=OpenRCT2" TARGET=docker64 services: - docker - - os: linux - name: Android - if: type = cron OR branch = master OR branch =~ ^android - language: android - before_install: [] - env: - - secure: "S3u2VCE2Vy8KNXoeh+DhnzjCmgTX0r95uEZrXDU+IKANOOCKn7Dg4OFDZE3LY/i1y2/EUDpnR5yLC38Ks795EUP/sv/OoMl4tjQ20yERjqWh+gcIRrgx7SdVabuAh3t4aBdaLD4Pfnj5avxeCt6rL7yGnj0wdbrbJSBZPsgSnuQ=" - - OPENRCT2_ANDROID="true" - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - libstdc++6-4.7-dev - android: - components: - - build-tools-25.0.2 - jdk: oraclejdk8 - before_script: - # Only run Android jobs when triggered from cron or on tag, otherwise skip - - if [[ "$OPENRCT2_ANDROID" != "true" ]] && [[ "z${TRAVIS_TAG}" == "z" ]] ; then exit 0 ; fi - - pushd ~ - - wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip - - unzip -qo sdk-tools-linux-3859397.zip - - rm -Rf "$ANDROID_HOME/tools" - - mv tools "$ANDROID_HOME/tools" - - popd - - 'echo "count=0" > ~/.android/repositories.cfg' - - '"$ANDROID_HOME/tools/bin/sdkmanager" --list' - - 'echo y | "$ANDROID_HOME/tools/bin/sdkmanager" platform-tools' - - 'echo y | "$ANDROID_HOME/tools/bin/sdkmanager" "platforms;android-25"' - - 'echo y | "$ANDROID_HOME/tools/bin/sdkmanager" "cmake;3.6.4111459"' - - '"$ANDROID_HOME/tools/bin/sdkmanager" ndk-bundle' - - '"$ANDROID_HOME/tools/bin/sdkmanager" --list' - - 'export ANDROID_NDK_HOME="$ANDROID_HOME/ndk-bundle"' - - 'cd src/openrct2-android' - - TERM=dumb # Makes Gradle use 'boring' output - script: - # Only run Android jobs when triggered from cron or on tag, otherwise skip - - if [[ "$OPENRCT2_ANDROID" != "true" ]] && [[ "z${TRAVIS_TAG}" == "z" ]] ; then exit 0 ; fi - - './gradlew app:assemblePR' - after_success: - # Only run Android jobs when triggered from cron or on tag, otherwise skip - - if [[ "$OPENRCT2_ANDROID" != "true" ]] && [[ "z${TRAVIS_TAG}" == "z" ]] ; then exit 0 ; fi - - curl -m $CURL_MAX_TIME --connect-timeout $CURL_CONNECT_TIMEOUT --upload-file app/build/outputs/apk/arm/pr/app-arm-pr.apk https://transfer.sh/openrct2-android-arm.apk -o link && cat link && echo|| if [[ $? ]] ; then echo "Failed transfer.sh upload" ; fi; - - curl -m $CURL_MAX_TIME --connect-timeout $CURL_CONNECT_TIMEOUT --upload-file app/build/outputs/apk/x86/pr/app-x86-pr.apk https://transfer.sh/openrct2-android-x86.apk -o link && cat link && echo || if [[ $? ]] ; then echo "Failed transfer.sh upload" ; fi; - - if [[ "z${TRAVIS_TAG}" != "z" ]] ; then - export PUSH_BRANCH=master ; - else export PUSH_BRANCH=$TRAVIS_BRANCH ; export FILENAME_PART=-${TRAVIS_BRANCH}-$(git rev-parse --short HEAD) ; - fi - - if [[ "z$OPENRCT2_ORG_TOKEN" != "z" && "$TRAVIS_PULL_REQUEST" == "false" && ("${TRAVIS_BRANCH}" =~ ^(develop|push/) || "z${TRAVIS_TAG}" != "z") ]] ; then - curl -m $CURL_MAX_TIME --connect-timeout $CURL_CONNECT_TIMEOUT -o - -v --form "key=$OPENRCT2_ORG_TOKEN" --form "fileName=OpenRCT2-${OPENRCT2_VERSION}${FILENAME_PART}-android-arm.apk" --form "version=${OPENRCT2_VERSION}" --form "gitHash=$TRAVIS_COMMIT" --form "gitBranch=$PUSH_BRANCH" --form "flavourId=11" --form "file=@app/build/outputs/apk/arm/pr/app-arm-pr.apk" "https://openrct2.org/altapi/?command=push-build"; - fi - - if [[ "z$OPENRCT2_ORG_TOKEN" != "z" && "$TRAVIS_PULL_REQUEST" == "false" && ("${TRAVIS_BRANCH}" =~ ^(develop|push/) || "z${TRAVIS_TAG}" != "z") ]] ; then - curl -m $CURL_MAX_TIME --connect-timeout $CURL_CONNECT_TIMEOUT -o - -v --form "key=$OPENRCT2_ORG_TOKEN" --form "fileName=OpenRCT2-${OPENRCT2_VERSION}${FILENAME_PART}-android-x86.apk" --form "version=${OPENRCT2_VERSION}" --form "gitHash=$TRAVIS_COMMIT" --form "gitBranch=$PUSH_BRANCH" --form "flavourId=12" --form "file=@app/build/outputs/apk/x86/pr/app-x86-pr.apk" "https://openrct2.org/altapi/?command=push-build"; - fi # Following entries used to be included in testing, but they only proved useful while changing things in CMake setup. # They are meant to be used when there are changes to CMakeLists.txt # - os: linux @@ -127,8 +69,6 @@ matrix: # env: OPENRCT2_CMAKE_OPTS="-DDISABLE_HTTP_TWITCH=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows script: - # Android jobs are triggered from cron and overwrite `script` part - - if [[ "$OPENRCT2_ANDROID" == "true" ]] ; then exit 0 ; fi - if [[ $TRAVIS_OS_NAME == "linux" ]]; then bash scripts/linux/build.sh ; fi notifications: