@@ -122,13 +122,21 @@ jobs:
122122 with :
123123 ndk-version : r27d
124124
125- - name : " Install Swift Host Toolchain "
125+ - name : " Setup Environment "
126126 run : |
127- swiftly install main-snapshot-2025-10-16
127+ echo "$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/${{ env.ANDROID_BUILD_TOOLS_VERSION }}" >> $GITHUB_PATH
128+ echo "ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }}" >> $GITHUB_ENV
129+ # needed for Linux or else the emulator will be created in
130+ # ~/.android/avd but it will be sought in ~/.config/.android/avd
131+ if [[ "${RUNNER_OS}" == "Linux" ]]; then
132+ echo "ANDROID_AVD_HOME=${XDG_CONFIG_HOME}/.android/avd" >> $GITHUB_ENV
133+ fi
134+
135+ - name : " Install Swiftly"
136+ run : curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash -s -- -y
128137
129138 - name : " Install Swift SDK for Android"
130- run : |
131- swift sdk install https://download.swift.org/development/android-sdk/swift-DEVELOPMENT-SNAPSHOT-2025-10-16-a/swift-DEVELOPMENT-SNAPSHOT-2025-10-16-a_android-0.1.artifactbundle.tar.gz --checksum 451844c232cf1fa02c52431084ed3dc27a42d103635c6fa71bae8d66adba2500
139+ run : swift sdk install https://download.swift.org/development/android-sdk/swift-DEVELOPMENT-SNAPSHOT-2025-10-16-a/swift-DEVELOPMENT-SNAPSHOT-2025-10-16-a_android-0.1.artifactbundle.tar.gz --checksum 451844c232cf1fa02c52431084ed3dc27a42d103635c6fa71bae8d66adba2500
132140
133141 - name : " Setup Swift SDK for Android"
134142 run : |
@@ -137,56 +145,55 @@ jobs:
137145
138146 - name : " Build Swift Executable for Android"
139147 run : |
140- mkdir AndroidExeDemo
141- cd AndroidExeDemo
142- swift package init --type executable
148+ mkdir hello
149+ cd hello
150+ swiftly run swift package init --type executable
143151 swiftly run swift build --swift-sdk x86_64-unknown-linux-android${ANDROID_API} --static-swift-stdlib
144152
145- - name : " Setup Environment"
146- run : |
147- echo "$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/${{ env.ANDROID_BUILD_TOOLS_VERSION }}" >> $GITHUB_PATH
148- echo "ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }}" >> $GITHUB_ENV
149- # needed for Linux or else the emulator will be created in
150- # ~/.android/avd but it will be sought in ~/.config/.android/avd
151- if [[ "${RUNNER_OS}" == "Linux" ]]; then
152- echo "ANDROID_AVD_HOME=${XDG_CONFIG_HOME}/.android/avd" >> $GITHUB_ENV
153- fi
154-
155- - name : SDKs - accept licenses
153+ - name : Android SDKs - setup environment
156154 run : yes y | sdkmanager --licenses
157155
158- - name : SKDs - setup build tools
156+ - name : Android SKDs - setup build tools
159157 run : sdkmanager --install "build-tools;${BUILD_TOOLS_VERSION}" platform-tools "platforms;android-${ANDROID_API}" --channel="${ANDROID_CHANNEL}"
160158
161- - name : SKDs - setup emulator
159+ - name : Android SKDs - setup emulator
162160 run : sdkmanager --install emulator --channel="${ANDROID_CHANNEL}"
163161
164- - name : SKDs - download required images
162+ - name : Android Emulator - download required images
165163 run : sdkmanager --install "system-images;android-${ANDROID_API};${ANDROID_TARGET};${EMULATOR_ARCH}" --channel="${ANDROID_CHANNEL}"
166164
167- - name : Emulator - Create
165+ - name : Android Emulator - Create
168166 run : avdmanager --verbose create avd --force -n "${ANDROID_EMULATOR_NAME}" --device "${ANDROID_PROFILE}" --abi "${ANDROID_TARGET}/${EMULATOR_ARCH}" --package "system-images;android-${ANDROID_API};${ANDROID_TARGET};${EMULATOR_ARCH}" --sdcard 512M
169167
170- # - name: Emulator - Find AVDs
168+ # - name: Android - Find AVDs
171169 # run: find ~/ -type d -name '*.avd'
172170
173- # - name: Emulator - List AVDs
171+ # - name: Android - List AVDs
174172 # run: emulator -list-avds
175173
176- - name : Emulator - Boot
174+ - name : Android - Boot
177175 run : nohup emulator -memory 4096 -avd "${ANDROID_EMULATOR_NAME}" -wipe-data -no-window -accel off -no-accel -gpu "${EMULATOR_GPU}" -no-snapshot -noaudio -no-boot-anim &
178176
179177 - name : ADB Wait For Device
180178 run : adb wait-for-any-device
181179 timeout-minutes : 5
182180
183- - name : Wait briefly
181+ - name : Pause briefly
184182 run : sleep 30
185183
186184 # - name: ADB Press Power Button
187185 # run: adb shell input keyevent 82
188186
189- - name : " Check Emulator"
187+ - name : Check Android Emulator
190188 run : |
191189 adb shell 'echo Hello Android!'
192190
191+ - name : Push Swift Exeutable to Android Emulator
192+ run : |
193+ adb push .debug/hello /data/local/tmp
194+ adb push $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/*/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so /data/local/tmp/
195+
196+ - name : Run Swift Exeutable on Android Emulator
197+ run : |
198+ adb shell /data/local/tmp/hello
199+
0 commit comments