-
Notifications
You must be signed in to change notification settings - Fork 2
155 lines (138 loc) · 6.95 KB
/
Copy pathandroid.yml
File metadata and controls
155 lines (138 loc) · 6.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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