Skip to content

Commit 3308a6d

Browse files
committed
Update demo to match installation instructions for Swift SDK for Android
1 parent c04efc3 commit 3308a6d

File tree

1 file changed

+34
-27
lines changed

1 file changed

+34
-27
lines changed

.github/workflows/ci.yml

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)