99 strategy :
1010 fail-fast : false
1111 matrix :
12- swift_version : ['nightly-main']
12+ # swift_version: ['nightly-main']
1313 include :
1414 - name : ' macOS 15 X64 API 28'
1515 os : ' macos-15-intel'
6363 ANDROID_PROFILE : " Nexus 10"
6464 ANDROID_CHANNEL : " 3"
6565 ANDROID_NDK_VERSION : " r27d"
66- SWIFT_TOOLCHAIN_VERSION : " swift-DEVELOPMENT-SNAPSHOT-2025-10-16"
67- SWIFT_ANDROID_SDK_VERSION : " swift-DEVELOPMENT-SNAPSHOT-2025-10-16"
68- SWIFT_ANDROID_SDK_CHECKSUM : " 451844c232cf1fa02c52431084ed3dc27a42d103635c6fa71bae8d66adba2500"
66+ SWIFT_VERSION : " nightly-main"
67+
6968 steps :
7069 - name : Free Disk Space
7170 if : runner.os == 'Linux'
7574 sudo rm -rf "/usr/local/share/boost"
7675 sudo rm -rf "$AGENT_TOOLSDIRECTORY"
7776
78- - name : Install Prerequisites
79- if : false
80- run : |
81- if [[ "${RUNNER_OS}" == "Linux" ]]; then
82- # libcurl4-openssl-dev needed for host toolchain
83- sudo apt-get -y install libcurl4-openssl-dev
84- fi
85-
86- # swiftly install instructions from https://www.swift.org/install/linux/
87- - name : Install Swiftly
88- if : false
89- run : |
90- if [[ "${RUNNER_OS}" == "macOS" ]]; then
91- curl -O https://download.swift.org/swiftly/darwin/swiftly.pkg && \
92- installer -pkg swiftly.pkg -target CurrentUserHomeDirectory && \
93- ~/.swiftly/bin/swiftly init --quiet-shell-followup && \
94- . "${SWIFTLY_HOME_DIR:-$HOME/.swiftly}/env.sh" && \
95- hash -r
96- elif [[ "${RUNNER_OS}" == "Linux" ]]; then
97- curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \
98- tar zxf swiftly-$(uname -m).tar.gz && \
99- ./swiftly init --quiet-shell-followup && \
100- . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \
101- hash -r
102- else
103- echo "Error: unsupported OS: ${RUNNER_OS}"
104- exit 1
105- fi
106- echo "${SWIFTLY_BIN_DIR}" >> "${GITHUB_PATH}"
107-
108- - name : Install Swift Host Toolchain
109- if : false
110- run : swiftly install --use "${SWIFT_TOOLCHAIN_VERSION}"
111-
112- - name : Install Swift SDK for Android
113- if : false
114- run : swift sdk install https://download.swift.org/development/android-sdk/${SWIFT_ANDROID_SDK_VERSION}-a/${SWIFT_ANDROID_SDK_VERSION}-a_android-0.1.artifactbundle.tar.gz --checksum ${SWIFT_ANDROID_SDK_CHECKSUM}
115-
116- - name : List Swift SDKs
117- if : false
118- run : swift sdk list
119-
120- - name : Install Android NDK
121- if : false
122- run : |
123- mkdir ~/android-ndk
124- cd ~/android-ndk
125- curl -fsSLO https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-$(uname -s).zip
126- unzip -q android-ndk-${ANDROID_NDK_VERSION}-*.zip
127- echo "ANDROID_NDK_HOME=${PWD}/android-ndk-${ANDROID_NDK_VERSION}" >> $GITHUB_ENV
128-
129- - name : Setup Android Environment
130- if : false
131- run : |
132- 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
133- # needed for Linux or else the emulator will be created in
134- # ~/.android/avd but it will be sought in ~/.config/.android/avd
135- if [[ "${RUNNER_OS}" == "Linux" ]]; then
136- echo "ANDROID_AVD_HOME=${XDG_CONFIG_HOME:-$HOME}/.android/avd" >> $GITHUB_ENV
137- fi
138-
139- - name : Setup Swift SDK for Android
140- if : false
141- run : |
142- cd ~/Library/org.swift.swiftpm || cd ${XDG_CONFIG_HOME}/swiftpm || cd ~/.local/swiftpm || cd ~/.swiftpm
143- ./swift-sdks/${SWIFT_ANDROID_SDK_VERSION}-a-android-0.1.artifactbundle/swift-android/scripts/setup-android-sdk.sh
144-
14577 - name : Create Swift Package
14678 run : |
14779 swift package init --name hello --type executable
15082 run : |
15183 #curl -s --retry 3 https://raw.githubusercontent.com/swiftlang/github-workflows/refs/heads/main/.github/workflows/scripts/install-and-build-with-sdk.sh | \
15284 curl -s --retry 3 https://raw.githubusercontent.com/swift-android-sdk/github-workflows/refs/heads/android-workflow/.github/workflows/scripts/install-and-build-with-sdk.sh | \
153- bash -s -- --android --flags="$BUILD_FLAGS" --android-sdk-triple="${{ inputs.android_sdk_triple }}" --android-ndk-version="${ANDROID_NDK_VERSION}" ${{ matrix.swift_version } }
85+ bash -s -- --android --flags="$BUILD_FLAGS" --android-sdk-triple="${{ inputs.android_sdk_triple }}" --android-ndk-version="${ANDROID_NDK_VERSION}" ${SWIFT_VERSION }
15486
15587 - name : Check Swift Package
15688 run : |
@@ -165,6 +97,15 @@ jobs:
16597 sudo udevadm trigger --name-match=kvm
16698 fi
16799
100+ - name : Setup Android Environment
101+ run : |
102+ 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
103+ # needed for Linux or else the emulator will be created in
104+ # ~/.android/avd but it will be sought in ~/.config/.android/avd
105+ if [[ "${RUNNER_OS}" == "Linux" ]]; then
106+ echo "ANDROID_AVD_HOME=${XDG_CONFIG_HOME:-$HOME}/.android/avd" >> $GITHUB_ENV
107+ fi
108+
168109 - name : Android SDKs - setup environment
169110 run : yes y | sdkmanager --licenses > /dev/null
170111
@@ -180,12 +121,6 @@ jobs:
180121 - name : Android Emulator - Create
181122 run : avdmanager --verbose create avd --force -n "${ANDROID_EMULATOR_NAME}" --device "${ANDROID_PROFILE}" --abi "${ANDROID_TARGET}/${ANDROID_EMULATOR_ARCH}" --package "system-images;android-${ANDROID_API};${ANDROID_TARGET};${ANDROID_EMULATOR_ARCH}" --sdcard 512M
182123
183- # - name: Android - Find AVDs
184- # run: find ~/ -type d -name '*.avd'
185-
186- # - name: Android - List AVDs
187- # run: emulator -list-avds
188-
189124 - name : Android - Boot
190125 run : nohup emulator -memory 4096 -avd "${ANDROID_EMULATOR_NAME}" -wipe-data -no-window -accel off -no-accel -gpu "${ANDROID_EMULATOR_GPU}" -no-snapshot -noaudio -no-boot-anim &
191126
@@ -196,9 +131,6 @@ jobs:
196131 - name : Pause briefly
197132 run : sleep 30
198133
199- # - name: ADB Press Power Button
200- # run: adb shell input keyevent 82
201-
202134 - name : Check Android Emulator
203135 run : |
204136 adb shell 'echo Hello Android!'
0 commit comments