r11911 #27
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly build Android | |
| on: | |
| push: | |
| tags: | |
| - 'Nightly' | |
| jobs: | |
| set-revision: | |
| name: set revision | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| output1: ${{ steps.out1.outputs.revision }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: detect revision | |
| run: | | |
| read text < ./src/simutrans/revision.h | |
| revision=${text:17:5} | |
| echo "revision=$revision" >> $GITHUB_ENV | |
| - id: out1 | |
| run: echo "revision=$revision" >> $GITHUB_OUTPUT | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: [set-revision] | |
| permissions: write-all | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| path: 'gh-clone/simutrans' | |
| - name: Install dependencies | |
| run: | | |
| sudo add-apt-repository universe | |
| sudo apt-get -yqq update | |
| sudo dpkg --add-architecture i386 | |
| sudo apt-get -yqq update | |
| sudo apt-get -ym install curl expect git libc6:i386 libgcc1:i386 libncurses6:i386 libstdc++6:i386 zlib1g:i386 openjdk-17-jdk wget unzip vim make subversion zip | |
| - name: Setup Android SDK environment variables | |
| run: | | |
| echo "ANDROID_HOME=/opt/android-sdk-linux" >> $GITHUB_ENV | |
| echo "ANDROID_SDK_HOME=/opt/android-sdk-linux" >> $GITHUB_ENV | |
| echo "ANDROID_SDK_ROOT=/opt/android-sdk-linux" >> $GITHUB_ENV | |
| echo "ANDROID_SDK=/opt/android-sdk-linux" >> $GITHUB_ENV | |
| echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV | |
| - name: Create working directory for next steps | |
| run: | | |
| sudo mkdir /opt/android-sdk-linux | |
| sudo mkdir /android-sdl | |
| sudo chown -R runner /opt/android-sdk-linux | |
| sudo chgrp -R docker /opt/android-sdk-linux | |
| sudo chown -R runner /android-sdl | |
| sudo chgrp -R docker /android-sdl | |
| - name: Install Android SDK tools | |
| working-directory: /opt/android-sdk-linux | |
| run: | | |
| wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip | |
| unzip commandlinetools-linux-13114758_latest.zip | |
| rm commandlinetools-linux-13114758_latest.zip | |
| mv cmdline-tools latest | |
| mkdir cmdline-tools | |
| mv latest cmdline-tools/latest | |
| echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_PATH | |
| - name: Install Android SDK dependencies | |
| working-directory: /opt/android-sdk-linux | |
| run: | | |
| yes | sdkmanager --licenses | |
| yes | sdkmanager --install "platform-tools" | |
| echo "$ANDROID_HOME/platform-tools" >> $GITHUB_PATH | |
| yes | sdkmanager --install "build-tools;35.0.0" | |
| echo "$ANDROID_HOME/build-tools/35.0.0" >> $GITHUB_PATH | |
| yes | sdkmanager --install "cmake;3.31.6" | |
| echo "$ANDROID_HOME/cmake/3.31.6/bin" >> $GITHUB_PATH | |
| yes | sdkmanager --install "ndk;29.0.14206865" | |
| echo "$ANDROID_HOME/ndk/29.0.14206865" >> $GITHUB_PATH | |
| echo "$ANDROID_HOME/ndk/29.0.14206865/toolchains/llvm/prebuilt/linux-x86_64/bin/" >> $GITHUB_PATH | |
| ln -s llvm-objdump ${ANDROID_HOME}/ndk/29.0.14206865/toolchains/llvm/prebuilt/linux-x86_64/bin/objdump | |
| - name: Set up android project | |
| working-directory: /android-sdl | |
| run: | | |
| git clone --depth 1 https://github.com/simutrans/simutrans-android-project | |
| cd simutrans-android-project | |
| git submodule init | |
| git submodule update | |
| cd simutrans/jni/SDL | |
| git revert 53dbe18 --no-commit | |
| cd ../../.. | |
| cp -r $GITHUB_WORKSPACE/gh-clone/simutrans simutrans/jni/simutrans | |
| cp -r simutrans/jni/SDL/android-project/app/src/main/java simutrans/src/main | |
| cd simutrans/jni | |
| cp -v simutrans/src/android/logo_72.png ../src/main/res/mipmap-hdpi/ic_launcher.png | |
| cp -v simutrans/src/android/logo_48.png ../src/main/res/mipmap-mdpi/ic_launcher.png | |
| cp -v simutrans/src/android/logo_96.png ../src/main/res/mipmap-xhdpi/ic_launcher.png | |
| cp -v simutrans/src/android/logo_144.png ../src/main/res/mipmap-xxhdpi/ic_launcher.png | |
| cp -v simutrans/src/android/logo_192.png ../src/main/res/mipmap-xxxhdpi/ic_launcher.png | |
| chmod +755 simutrans/src/android/AndroidPreBuild.sh | |
| chmod +755 simutrans/tools/lang_files_standard.sh | |
| chmod +755 simutrans/tools/get_pak.sh | |
| ./simutrans/src/android/AndroidPreBuild.sh | |
| cp -rf simutrans/simutrans/. ../src/main/assets | |
| - name: Build libraries | |
| working-directory: /android-sdl/simutrans-android-project/simutrans/jni | |
| run: | | |
| ./build_libraries.sh | |
| # Fluidsynth is a PITA to build; using the prebuilt release instead | |
| wget https://github.com/FluidSynth/fluidsynth/releases/download/v2.5.1/fluidsynth-2.5.1-android24.zip | |
| unzip fluidsynth-*.zip -d fluidsynth | |
| - name: Build Simutrans for Android | |
| env: | |
| SIGNING_KEYSTORE: /android-sdl/simutrans-android-project/simutrans/jni/simutrans/src/android/Simutrans-upload.keystore | |
| SIGNING_KEY_ALIAS: ${{ secrets.ANDROID_UPLOAD_KEYSTORE_ALIAS }} | |
| SIGNING_KEY_PASSWORD: ${{ secrets.ANDROID_UPLOAD_KEYSTORE_PASS }} | |
| SIGNING_STORE_PASSWORD: ${{ secrets.ANDROID_UPLOAD_KEYSTORE_PASS }} | |
| working-directory: gh-clone/simutrans | |
| run: | | |
| echo "action_state=yellow" >> $GITHUB_ENV | |
| sed -i "s/versionCode [0-9]\+/versionCode $(./tools/get_revision.sh)/" /android-sdl/simutrans-android-project/simutrans/build.gradle | |
| VERSION=`sed -n 's/#define SIM_VERSION_MAJOR *\([0-9]*\)$/\1/ p' <src/simutrans/simversion.h`.`sed -n 's/#define SIM_VERSION_MINOR *\([0-9]*\)$/\1/ p' <src/simutrans/simversion.h`.`sed -n 's/#define SIM_VERSION_PATCH *\([0-9]*\)$/\1/ p' <src/simutrans/simversion.h` | |
| NIGHTLY=`sed -n 's/#define SIM_VERSION_BUILD SIM_BUILD_NIGHTLY/ Nightly/ p' <src/simutrans/simversion.h``sed -n 's/#define SIM_VERSION_BUILD SIM_BUILD_RELEASE_CANDIDATE/ Release candidate/ p' <src/simutrans/simversion.h` | |
| sed -i 's/versionName.*$/versionName "'"$VERSION$NIGHTLY"'"/' /android-sdl/simutrans-android-project/simutrans/build.gradle | |
| sed -i '/distributionUrl/s/gradle-8.3-all.zip/gradle-8.3-all.zip/' /android-sdl/simutrans-android-project/gradle/wrapper/gradle-wrapper.properties | |
| cd /android-sdl/simutrans-android-project | |
| cat simutrans/build.gradle | |
| #cp project/jni/simutrans/src/android/signBundle.sh . | |
| #chmod 555 ./signBundle.sh | |
| #./build.sh -b simutrans | |
| ./gradlew assembleRelease | |
| ./gradlew bundleRelease | |
| cd /android-sdl/simutrans-android-project/simutrans/build/outputs/bundle/release | |
| mkdir whatsNewDirectory | |
| echo `cd $GITHUB_WORKSPACE/gh-clone/simutrans && git log --pretty=format:'%s' -1` > whatsNewDirectory/whatsnew-en-US | |
| - name: Update binaries of Nightly Release | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: /android-sdl/simutrans-android-project/simutrans/build/outputs/apk/release/simutrans-release-unsigned.apk | |
| asset_name: simuandroid-nightly_r.apk | |
| tag: Nightly | |
| overwrite: true |