Skip to content

Swift 6.0

Swift 6.0 #221

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