Skip to content
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e41b5ae
Use setup-skip action
marcprux Sep 28, 2025
a9f68ea
Update CI to run on pull_request
marcprux Sep 28, 2025
f7b2918
Try setup-skip action
marcprux Sep 28, 2025
c45cd9e
Try setup-skip action
marcprux Sep 28, 2025
6493585
Try setup-skip action
marcprux Sep 28, 2025
2500114
Try setup-skip action
marcprux Sep 28, 2025
98eeb87
Try setup-skip action
marcprux Sep 28, 2025
5e80153
Try setup-skip action
marcprux Sep 28, 2025
fa57586
Try setup-skip action
marcprux Sep 28, 2025
795f5b8
Try setup-skip action
marcprux Sep 28, 2025
da3f4e2
Try setup-skip action
marcprux Sep 28, 2025
6daf5b7
Try setup-skip action
marcprux Sep 28, 2025
44fe5d7
Try setup-skip action
marcprux Sep 28, 2025
e510a70
Try setup-skip action
marcprux Sep 28, 2025
72de597
Try setup-skip action
marcprux Sep 28, 2025
e57ff10
Try setup-skip action
marcprux Sep 28, 2025
f2d6176
Try setup-skip action
marcprux Sep 28, 2025
675cbec
Try setup-skip action
marcprux Sep 28, 2025
17c886b
Try setup-skip action
marcprux Sep 28, 2025
cd26d41
Try setup-skip action
marcprux Sep 28, 2025
49d561b
Try setup-skip action
marcprux Sep 28, 2025
0b7887d
Try setup-skip action
marcprux Sep 28, 2025
30fec4d
Try setup-skip action
marcprux Sep 28, 2025
a4e1d7d
Try setup-skip action
marcprux Sep 28, 2025
28af61f
Try setup-skip action
marcprux Sep 28, 2025
b380a91
Try setup-skip action
marcprux Sep 28, 2025
9d1f3b5
Try setup-skip action
marcprux Sep 28, 2025
3671b13
Try setup-skip action
marcprux Sep 28, 2025
0fe250c
Try setup-skip action
marcprux Sep 28, 2025
8b02f1f
Try setup-skip action
marcprux Sep 28, 2025
e7e1449
Try setup-skip action
marcprux Sep 28, 2025
72e9565
Try setup-skip action
marcprux Sep 28, 2025
f25e7e6
Try setup-skip action
marcprux Sep 28, 2025
0280699
Update versions of actions
marcprux Sep 28, 2025
301007e
Cleanup
marcprux Sep 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 69 additions & 58 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: [ main ]
workflow_dispatch:

pull_request:
jobs:
install-sdk:
strategy:
Expand All @@ -12,90 +12,101 @@ jobs:
- name: 'macOS 26'
os: 'macos-26'
ANDROID_API: 28
ANDROID_ARCH: 'arm64-v8a'
ANDROID_GPU: 'swiftshader_indirect'
- name: 'macOS 15'
os: 'macos-15'
ANDROID_API: 28
ANDROID_ARCH: 'arm64-v8a'
ANDROID_GPU: 'swiftshader_indirect'
- name: 'macOS 14'
os: 'macos-14'
ANDROID_API: 28
ANDROID_ARCH: 'arm64-v8a'
ANDROID_GPU: 'swiftshader_indirect'
EMULATOR_ARCH: 'arm64-v8a'
EMULATOR_GPU: 'swiftshader_indirect'
#- name: 'macOS 15'
# os: 'macos-15'
# ANDROID_API: 28
# EMULATOR_ARCH: 'arm64-v8a'
# EMULATOR_GPU: 'swiftshader_indirect'
#- name: 'macOS 14'
# os: 'macos-14'
# ANDROID_API: 28
# EMULATOR_ARCH: 'arm64-v8a'
# EMULATOR_GPU: 'swiftshader_indirect'
- name: 'macOS 13'
os: 'macos-13'
ANDROID_API: 28
ANDROID_ARCH: 'x86_64'
ANDROID_GPU: 'swiftshader_indirect'
EMULATOR_ARCH: 'x86_64'
EMULATOR_GPU: 'swiftshader_indirect'
- name: 'Ubuntu Latest'
os: 'ubuntu-latest'
ANDROID_API: 28
ANDROID_ARCH: 'x86_64'
ANDROID_GPU: 'none'
EMULATOR_ARCH: 'x86_64'
EMULATOR_GPU: 'swiftshader_indirect'
fail-fast: false
runs-on: ${{ matrix.os }}
env:
ANDROID_API: ${{ matrix.ANDROID_API }}
ANDROID_ARCH: ${{ matrix.ANDROID_ARCH }}
ANDROID_GPU: ${{ matrix.ANDROID_GPU }}
EMULATOR_ARCH: ${{ matrix.EMULATOR_ARCH }}
EMULATOR_GPU: ${{ matrix.EMULATOR_GPU }}
EMULATOR_ENGINE: ${{ matrix.EMULATOR_ENGINE }}
ANDROID_TARGET: 'default'
#ANDROID_BUILD_TOOLS_VERSION: 36.0.0
ANDROID_BUILD_TOOLS_VERSION: 'latest'
ANDROID_EMULATOR_NAME: 'test'
ANDROID_EMULATOR_NAME: 'demo'
ANDROID_PROFILE: "Nexus 10"
ANDROID_CHANNEL: "3"
BUILD_TOOLS_VERSION: "35.0.0"
steps:
- uses: skiptools/actions/setup-skip@v1

- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r27d

- name: "Setup Environment"
run: |
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
echo "ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }}" >> $GITHUB_ENV
# needed for Linux or else the emulator will be created in
# ~/.android/avd but it will be sought in ~/.config/.android/avd
if [[ "${RUNNER_OS}" == "Linux" ]]; then
echo "ANDROID_AVD_HOME=${XDG_CONFIG_HOME}/.android/avd" >> $GITHUB_ENV
fi

- name: "Launch emulator"
timeout-minutes: 10
run: |
which adb
- uses: skiptools/swift-android-action@v2
with:
build-package: false

yes Y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
- name: SDKs - accept licenses
run: yes y | sdkmanager --licenses

# Install AVD files
yes Y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "system-images;android-${ANDROID_API};${ANDROID_TARGET};${ANDROID_ARCH}"
yes Y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --channel=3 emulator
# Create emulator
echo "no" | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -f -n test -d "Nexus 10" --abi "${ANDROID_TARGET}/${ANDROID_ARCH}" -k "system-images;android-${ANDROID_API};${ANDROID_TARGET};${ANDROID_ARCH}" --force
$ANDROID_HOME/emulator/emulator -list-avds
echo "Starting emulator"

# Start emulator in background
nohup $ANDROID_HOME/emulator/emulator -avd ${ANDROID_EMULATOR_NAME} -no-snapshot -no-window -no-audio -no-boot-anim -no-accel -no-metrics -camera-back none -accel off -gpu ${ANDROID_GPU} &
# Fixed quoting around "\r"
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d "\r") ]]; do sleep 1; done; input keyevent 82'
$ANDROID_HOME/platform-tools/adb devices
echo "Emulator started"

- name: "Check Emulator"
run: |
$ANDROID_HOME/platform-tools/adb shell 'echo Hello Android!'

- name: "Install Skip (macOS)"
if: ${{ startsWith(matrix.os, 'macos-') }}
run: |
brew install skiptools/skip/skip
skip android sdk install
- name: SKDs - setup build tools
run: sdkmanager --install "build-tools;${BUILD_TOOLS_VERSION}" platform-tools "platforms;android-${ANDROID_API}" --channel="${ANDROID_CHANNEL}"

- name: Install Skip (Ubuntu)
if: ${{ startsWith(matrix.os, 'ubuntu-') }}
- name: SKDs - setup emulator
run: sdkmanager --install emulator --channel="${ANDROID_CHANNEL}"

- name: SKDs - download required images
run: sdkmanager --install "system-images;android-${ANDROID_API};${ANDROID_TARGET};${EMULATOR_ARCH}" --channel="${ANDROID_CHANNEL}"

- name: Emulator - Create
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

- name: Emulator - Find AVDs
run: find ~/ -type d -name '*.avd'

- name: Emulator - List AVDs
run: emulator -list-avds

- name: Emulator - Boot
run: emulator -memory 4096 -avd "${ANDROID_EMULATOR_NAME}" -wipe-data -no-window -accel off -no-accel -gpu "${EMULATOR_GPU}" -no-snapshot -noaudio -no-boot-anim &

- name: ADB Wait For Device
run: adb wait-for-any-device
timeout-minutes: 3

- name: "Check Emulator"
run: |
mkdir -p ~/bin/skiptools
cd ~/bin/skiptools
curl -fsSLO https://github.com/skiptools/skip/releases/latest/download/skip-linux.zip
unzip skip-linux.zip
echo "PATH=${PWD}/skip.artifactbundle/$(uname -m)-swift-linux-musl:${PATH}" >> $GITHUB_ENV
cd -
adb shell 'echo Hello Android!'

- name: "Test Swift Package"
run: |
mkdir PackageDemo
cd PackageDemo
swift package init
swift test
skip android test
skip android test --arch ${EMULATOR_ARCH}

Loading