Swift 6.0 #219
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Android Toolchain | |
on: | |
# Trigger the workflow on push or pull request, | |
# but only for the master branch | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build-swift-android-arm-64: | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Cache Swift Arm64 | |
id: cache-swift-arm-64 | |
uses: actions/cache@v2 | |
with: | |
path: ~/out/swift-android/lib | |
key: ${{ runner.os }}-stdlib-arm64-${{ hashFiles('.swift.sum') }} | |
- name: Build Swift | |
if: steps.cache-swift-arm-64.outputs.cache-hit != 'true' | |
run: ./build/031-build-swift-arm64.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-arm64-v8a | |
path: ~/out/swift-android/lib | |
build-swift-android-armeabi-v7a: | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Cache Swift Arm 32 | |
id: cache-swift-arm-32 | |
uses: actions/cache@v2 | |
with: | |
path: ~/out/swift-android/lib | |
key: ${{ runner.os }}-stdlib-arm32-${{ hashFiles('.swift.sum') }} | |
- name: Build Swift | |
if: steps.cache-swift-arm-32.outputs.cache-hit != 'true' | |
run: ./build/032-build-swift-arm.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-armeabi-v7a | |
path: ~/out/swift-android/lib | |
build-swift-android-x86_64: | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Cache Swift x86_64 | |
id: cache-swift-x86_64 | |
uses: actions/cache@v2 | |
with: | |
path: ~/out/swift-android/lib | |
key: ${{ runner.os }}-stdlib-x86_64-${{ hashFiles('.swift.sum') }} | |
- name: Build Swift | |
if: steps.cache-swift-x86_64.outputs.cache-hit != 'true' | |
run: ./build/033-build-swift-x86_64.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-x86_64 | |
path: ~/out/swift-android/lib | |
build-openssl-android: | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Cache OpenSSL | |
id: cache-openssl | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/openssl/arm64 | |
~/openssl/arm | |
~/openssl/x86_64 | |
~/openssl/x86 | |
key: openssl-1.1.1w-r4 | |
- name: Install dependencies | |
if: steps.cache-openssl.outputs.cache-hit != 'true' | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
if: steps.cache-openssl.outputs.cache-hit != 'true' | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
if: steps.cache-openssl.outputs.cache-hit != 'true' | |
run: ./build/003-define-build-folders.sh | |
- name: Build OpenSSL | |
if: steps.cache-openssl.outputs.cache-hit != 'true' | |
run: ./build/041-build-openssl.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl-arm64-v8a | |
path: ~/openssl/arm64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl-armeabi-v7a | |
path: ~/openssl/arm | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl-x86_64 | |
path: ~/openssl/x86_64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl-x86 | |
path: ~/openssl/x86 | |
build-curl-android: | |
needs: [build-openssl-android] | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Cache curl | |
id: cache-curl | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/curl/arm64 | |
~/curl/arm | |
~/curl/x86_64 | |
~/curl/x86 | |
key: curl-7_88_1-r10 | |
- name: Install dependencies | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
run: ./build/003-define-build-folders.sh | |
- uses: actions/download-artifact@v4 | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
with: | |
name: openssl-arm64-v8a | |
path: ~/openssl/arm64 | |
- uses: actions/download-artifact@v4 | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
with: | |
name: openssl-armeabi-v7a | |
path: ~/openssl/arm | |
- uses: actions/download-artifact@v4 | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
with: | |
name: openssl-x86 | |
path: ~/openssl/x86 | |
- uses: actions/download-artifact@v4 | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
with: | |
name: openssl-x86_64 | |
path: ~/openssl/x86_64 | |
- name: Build cURL | |
if: steps.cache-curl.outputs.cache-hit != 'true' | |
run: ./build/042-build-curl.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: curl-arm64-v8a | |
path: ~/curl/arm64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: curl-armeabi-v7a | |
path: ~/curl/arm | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: curl-x86_64 | |
path: ~/curl/x86_64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: curl-x86 | |
path: ~/curl/x86 | |
build-libxml-android: | |
runs-on: ubuntu-24.04 | |
container: ubuntu:noble | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Cache libxml | |
id: cache-libxml | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/libxml/arm64 | |
~/libxml/arm | |
~/libxml/x86_64 | |
~/libxml/x86 | |
key: libxmlv2.13.5-r1 | |
- name: Install dependencies | |
if: steps.cache-libxml.outputs.cache-hit != 'true' | |
run: ./build/000-install-dependencies-nobel.sh | |
- name: Install NDK | |
if: steps.cache-libxml.outputs.cache-hit != 'true' | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
if: steps.cache-libxml.outputs.cache-hit != 'true' | |
run: ./build/003-define-build-folders.sh | |
- name: Build libXML | |
if: steps.cache-libxml.outputs.cache-hit != 'true' | |
run: ./build/043-build-libxml.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: libxml-arm64-v8a | |
path: ~/libxml/arm64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: libxml-armeabi-v7a | |
path: ~/libxml/arm | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: libxml-x86_64 | |
path: ~/libxml/x86_64 | |
build-swift-corelibs-android-arm-64: | |
needs: [build-openssl-android, build-curl-android, build-libxml-android, build-swift-android-arm-64] | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: openssl-arm64-v8a | |
path: ~/openssl/arm64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: curl-arm64-v8a | |
path: ~/curl/arm64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: libxml-arm64-v8a | |
path: ~/libxml/arm64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-arm64-v8a | |
path: ~/swift-android/lib | |
- name: Copy andorid stdlib to swift toolchain | |
run: cp -r ~/swift-android/lib/swift/android ~/swift-toolchain/usr/lib/swift | |
- name: Remove corelibs headers from swift-toolchain | |
run: rm -rf ~/swift-toolchain/usr/lib/swift/CoreFoundation ~/swift-toolchain/usr/lib/swift/dispatch ~/swift-toolchain/usr/lib/swift/_FoundationCShims ~/swift-toolchain/usr/lib/swift/_foundation_unicode | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Build Corelibs | |
run: ./build/052-build-corelibs.sh arm64 aarch64 aarch64-linux-android arm64-v8a aarch64-linux-android | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-clang-libs | |
path: ~/swift-toolchain/usr/lib/clang | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-arm64-v8a-libs | |
path: ~/swift-toolchain/usr/lib/swift | |
build-swift-corelibs-android-armeabi-v7a: | |
needs: [build-openssl-android, build-curl-android, build-libxml-android, build-swift-android-armeabi-v7a] | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: openssl-armeabi-v7a | |
path: ~/openssl/arm | |
- uses: actions/download-artifact@v4 | |
with: | |
name: curl-armeabi-v7a | |
path: ~/curl/arm | |
- uses: actions/download-artifact@v4 | |
with: | |
name: libxml-armeabi-v7a | |
path: ~/libxml/arm | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-armeabi-v7a | |
path: ~/swift-android/lib | |
- name: Copy andorid stdlib to swift toolchain | |
run: cp -r ~/swift-android/lib/swift/android ~/swift-toolchain/usr/lib/swift | |
- name: Remove corelibs headers from swift-toolchain | |
run: rm -rf ~/swift-toolchain/usr/lib/swift/CoreFoundation ~/swift-toolchain/usr/lib/swift/dispatch ~/swift-toolchain/usr/lib/swift/_FoundationCShims ~/swift-toolchain/usr/lib/swift/_foundation_unicode | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Build Corelibs | |
run: ./build/052-build-corelibs.sh arm armv7 arm-linux-androideabi armeabi-v7a armv7a-linux-androideabi | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-armeabi-v7a-libs | |
path: ~/swift-toolchain/usr/lib/swift | |
build-swift-corelibs-android-x86_64: | |
needs: [build-openssl-android, build-curl-android, build-libxml-android, build-swift-android-x86_64] | |
runs-on: ubuntu-20.04 | |
container: ubuntu:focal | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: ./build/000-install-dependencies.sh | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- name: Define build folders | |
run: ./build/003-define-build-folders.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: openssl-x86_64 | |
path: ~/openssl/x86_64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: curl-x86_64 | |
path: ~/curl/x86_64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: libxml-x86_64 | |
path: ~/libxml/x86_64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-x86_64 | |
path: ~/swift-android/lib | |
- name: Copy andorid stdlib to swift toolchain | |
run: cp -r ~/swift-android/lib/swift/android ~/swift-toolchain/usr/lib/swift | |
- name: Remove corelibs headers from swift-toolchain | |
run: rm -rf ~/swift-toolchain/usr/lib/swift/CoreFoundation ~/swift-toolchain/usr/lib/swift/dispatch ~/swift-toolchain/usr/lib/swift/_FoundationCShims ~/swift-toolchain/usr/lib/swift/_foundation_unicode | |
- name: Clone Swift | |
run: ./build/020-clone-swift.sh | |
- name: Build Corelibs | |
run: ./build/052-build-corelibs.sh x86_64 x86_64 x86_64-linux-android x86_64 x86_64-linux-android | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android-x86_64-libs | |
path: ~/swift-toolchain/usr/lib/swift | |
collect-mac-x86_64-toolchain: | |
needs: [build-swift-corelibs-android-arm-64, build-swift-corelibs-android-armeabi-v7a, build-swift-corelibs-android-x86_64] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install NDK | |
run: ./build/002-install-ndk.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-arm64-v8a-libs | |
path: ~/lib/swift-aarch64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-armeabi-v7a-libs | |
path: ~/lib/swift-armv7 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-x86_64-libs | |
path: ~/lib/swift-x86_64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: swift-android-clang-libs | |
path: ~/lib/clang | |
- name: Collect toolchain | |
run: ./build/060-collect-toolchain.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: swift-android | |
path: ~/out/swift-android.zip |