Skip to content

Migrate to Python3

Migrate to Python3 #50

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-icu-android:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Cache ICU
id: cache-icu
uses: actions/cache@v2
with:
path: |
~/icu/build-aarch64-linux-android/lib
~/icu/build-armv7a-linux-androideabi/lib
~/icu/build-x86_64-linux-android/lib
~/icu/build-i686-linux-android/lib
key: container-icu-73-2
- name: Build ICU
if: steps.cache-icu.outputs.cache-hit != 'true'
run: ./build/Linux/010-build-icu.sh
- uses: actions/upload-artifact@v2
with:
name: icu-arm64-v8a
path: |
~/icu/build-aarch64-linux-android/lib
- uses: actions/upload-artifact@v2
with:
name: icu-armeabi-v7a
path: |
~/icu/build-armv7a-linux-androideabi/lib
- uses: actions/upload-artifact@v2
with:
name: icu-x86_64
path: |
~/icu/build-x86_64-linux-android/lib
- uses: actions/upload-artifact@v2
with:
name: icu-x86
path: |
~/icu/build-i686-linux-android/lib
build-swift-android-arm-64:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Cache Swift Arm64
id: cache-swift-arm-64
uses: actions/cache@v2
with:
path: ~/out/swift-android-arm64-v8a.tar
key: ${{ runner.os }}-arm64-${{ hashFiles('.swift.sum') }}
- name: Build Swift
if: steps.cache-swift-arm-64.outputs.cache-hit != 'true'
run: ./build/Linux/031-build-swift-arm64.sh
- name: Clean sources
if: steps.cache-swift-arm-64.outputs.cache-hit != 'true'
run: rm -rf ~/swift-source
- name: Archive toolchain
if: steps.cache-swift-arm-64.outputs.cache-hit != 'true'
run: cd ~/out; tar -cvf swift-android-arm64-v8a.tar swift-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-arm64-v8a
path: ~/out/swift-android-arm64-v8a.tar
build-swift-android-armeabi-v7a:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Cache Swift Arm 32
id: cache-swift-arm-32
uses: actions/cache@v2
with:
path: ~/out/swift-android-armeabi-v7a.tar
key: ${{ runner.os }}-arm32-${{ hashFiles('.swift.sum') }}
- name: Build Swift
if: steps.cache-swift-arm-32.outputs.cache-hit != 'true'
run: ./build/Linux/032-build-swift-arm.sh
- name: Clean sources
if: steps.cache-swift-arm-32.outputs.cache-hit != 'true'
run: rm -rf ~/swift-source
- name: Archive toolchain
if: steps.cache-swift-arm-32.outputs.cache-hit != 'true'
run: cd ~/out; tar -cvf swift-android-armeabi-v7a.tar swift-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-armeabi-v7a
path: ~/out/swift-android-armeabi-v7a.tar
build-swift-android-x86:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Cache Swift x86
id: cache-swift-x86
uses: actions/cache@v2
with:
path: ~/out/swift-android-x86.tar
key: ${{ runner.os }}-x86-${{ hashFiles('.swift.sum') }}
- name: Build Swift
if: steps.cache-swift-x86.outputs.cache-hit != 'true'
run: ./build/Linux/034-build-swift-x86.sh
- name: Clean sources
if: steps.cache-swift-x86.outputs.cache-hit != 'true'
run: rm -rf ~/swift-source
- name: Archive toolchain
if: steps.cache-swift-x86.outputs.cache-hit != 'true'
run: cd ~/out; tar -cvf swift-android-x86.tar swift-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-x86
path: ~/out/swift-android-x86.tar
build-swift-android-x86_64:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Cache Swift x86_64
id: cache-swift-x86_64
uses: actions/cache@v2
with:
path: ~/out/swift-android-x86_64.tar
key: ${{ runner.os }}-x86_64-${{ hashFiles('.swift.sum') }}
- name: Build Swift
if: steps.cache-swift-x86_64.outputs.cache-hit != 'true'
run: ./build/Linux/033-build-swift-x86_64.sh
- name: Clean sources
if: steps.cache-swift-x86_64.outputs.cache-hit != 'true'
run: rm -rf ~/swift-source
- name: Archive toolchain
if: steps.cache-swift-x86_64.outputs.cache-hit != 'true'
run: cd ~/out; tar -cvf swift-android-x86_64.tar swift-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-x86_64
path: ~/out/swift-android-x86_64.tar
build-foundation-dependecies-android:
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- name: Cache foundation dependencies
id: cache-foundation-dependencies
uses: actions/cache@v2
with:
path: |
~/foundation-dependencies/arm64
~/foundation-dependencies/arm
~/foundation-dependencies/x86_64
~/foundation-dependencies/x86
key: container-openssl-1.1.1w-curl-7_88_1-libxmlv2.9.14
- name: Build Foundation Dependenncies
if: steps.cache-foundation-dependencies.outputs.cache-hit != 'true'
run: ./build/Linux/040-build-foundation-depends.sh
- uses: actions/upload-artifact@v2
with:
name: foundation-dependecies-arm64-v8a
path: |
~/foundation-dependencies/arm64
!~/foundation-dependencies/arm64/src
- uses: actions/upload-artifact@v2
with:
name: foundation-dependecies-armeabi-v7a
path: |
~/foundation-dependencies/arm
!~/foundation-dependencies/arm/src
- uses: actions/upload-artifact@v2
with:
name: foundation-dependecies-x86_64
path: |
~/foundation-dependencies/x86_64
!~/foundation-dependencies/x86_64/src
- uses: actions/upload-artifact@v2
with:
name: foundation-dependecies-x86
path: |
~/foundation-dependencies/x86
!~/foundation-dependencies/x86/src
build-swift-corelibs-android-arm-64:
needs: [build-icu-android, build-swift-android-arm-64, build-foundation-dependecies-android]
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- uses: actions/download-artifact@v2
with:
name: icu-arm64-v8a
path: ~/icu/build-aarch64-linux-android
- uses: actions/download-artifact@v2
with:
name: swift-android-arm64-v8a
path: ~/out
- name: Unarchive toolchain
run: cd ~/out; tar -xvf swift-android-arm64-v8a.tar
- uses: actions/download-artifact@v2
with:
name: foundation-dependecies-arm64-v8a
path: ~/foundation-dependencies/arm64
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Build Corelibs
run: ./build/Linux/052-build-corelibs.sh arm64 aarch64 aarch64-linux-android arm64-v8a aarch64-linux-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-clang-libs
path: ~/out/swift-android/swift-nightly-install/usr/lib/clang
- uses: actions/upload-artifact@v2
with:
name: swift-android-arm64-v8a-libs
path: ~/out/swift-android/swift-nightly-install/usr/lib/swift-aarch64
build-swift-corelibs-android-armeabi-v7a:
needs: [build-icu-android, build-swift-android-armeabi-v7a, build-foundation-dependecies-android]
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- uses: actions/download-artifact@v2
with:
name: icu-armeabi-v7a
path: ~/icu/build-armv7a-linux-androideabi
- uses: actions/download-artifact@v2
with:
name: swift-android-armeabi-v7a
path: ~/out
- name: Unarchive toolchain
run: cd ~/out; tar -xvf swift-android-armeabi-v7a.tar
- uses: actions/download-artifact@v2
with:
name: foundation-dependecies-armeabi-v7a
path: ~/foundation-dependencies/arm
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Build Corelibs
run: ./build/Linux/052-build-corelibs.sh arm armv7 arm-linux-androideabi armeabi-v7a armv7a-linux-androideabi
- uses: actions/upload-artifact@v2
with:
name: swift-android-armeabi-v7a-libs
path: ~/out/swift-android/swift-nightly-install/usr/lib/swift-armv7
build-swift-corelibs-android-x86:
needs: [build-icu-android, build-swift-android-x86, build-foundation-dependecies-android]
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- uses: actions/download-artifact@v2
with:
name: icu-x86
path: ~/icu/build-i686-linux-android
- uses: actions/download-artifact@v2
with:
name: swift-android-x86
path: ~/out
- name: Unarchive toolchain
run: cd ~/out; tar -xvf swift-android-x86.tar
- uses: actions/download-artifact@v2
with:
name: foundation-dependecies-x86
path: ~/foundation-dependencies/x86
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Build Corelibs
run: ./build/Linux/052-build-corelibs.sh x86 i686 i686-linux-android x86 i686-linux-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-x86-libs
path: ~/out/swift-android/swift-nightly-install/usr/lib/swift-i686
build-swift-corelibs-android-x86_64:
needs: [build-icu-android, build-swift-android-x86_64, build-foundation-dependecies-android]
runs-on: ubuntu-20.04
container: ubuntu:focal
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/Linux/000-install-dependencies.sh
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- name: Define build folders
run: ./build/Linux/003-define-build-folders.sh
- uses: actions/download-artifact@v2
with:
name: icu-x86_64
path: ~/icu/build-x86_64-linux-android
- uses: actions/download-artifact@v2
with:
name: swift-android-x86_64
path: ~/out
- name: Unarchive toolchain
run: cd ~/out; tar -xvf swift-android-x86_64.tar
- uses: actions/download-artifact@v2
with:
name: foundation-dependecies-x86_64
path: ~/foundation-dependencies/x86_64
- name: Clone Swift
run: ./build/Linux/020-clone-swift.sh
- name: Build Corelibs
run: ./build/Linux/052-build-corelibs.sh x86_64 x86_64 x86_64-linux-android x86_64 x86_64-linux-android
- uses: actions/upload-artifact@v2
with:
name: swift-android-x86_64-libs
path: ~/out/swift-android/swift-nightly-install/usr/lib/swift-x86_64
build-swift-mac-x86_64:
runs-on: macos-12
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: ./build/macOS/000-install-dependencies.sh
- name: Clone Swift
run: ./build/macOS/010-clone-swift.sh
- name: Cache Swift Mac
id: cache-swift-mac
uses: actions/cache@v2
with:
path: ~/swift-android-bin.tar
key: ${{ runner.os }}-x86_64-${{ hashFiles('.swift.sum') }}
- name: Build Swift
if: steps.cache-swift-mac.outputs.cache-hit != 'true'
run: ./build/macOS/020-build-swift.sh
- name: Build Swift PM
if: steps.cache-swift-mac.outputs.cache-hit != 'true'
run: ./build/macOS/030-build-swiftpm.sh
- name: Collect toolchain bin
if: steps.cache-swift-mac.outputs.cache-hit != 'true'
run: ./build/macOS/040-collect-toolchain-bin.sh
- uses: actions/upload-artifact@v2
with:
name: swift-android-bin
path: ~/swift-android-bin.tar
collect-mac-x86_64-toolchain:
needs: [build-swift-mac-x86_64, build-swift-corelibs-android-arm-64, build-swift-corelibs-android-armeabi-v7a, build-swift-corelibs-android-x86_64, build-swift-corelibs-android-x86]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
- name: Install NDK
run: ./build/Linux/002-install-ndk.sh
- uses: actions/download-artifact@v2
with:
name: swift-android-bin
path: ~/
- name: Unarchive bin
run: cd ~/; tar -xvf swift-android-bin.tar
- uses: actions/download-artifact@v2
with:
name: swift-android-arm64-v8a-libs
path: ~/lib/swift-aarch64
- uses: actions/download-artifact@v2
with:
name: swift-android-armeabi-v7a-libs
path: ~/lib/swift-armv7
- uses: actions/download-artifact@v2
with:
name: swift-android-x86_64-libs
path: ~/lib/swift-x86_64
- uses: actions/download-artifact@v2
with:
name: swift-android-x86-libs
path: ~/lib/swift-i686
- uses: actions/download-artifact@v2
with:
name: swift-android-clang-libs
path: ~/lib/clang
- name: Collect toolchain
run: ./build/Linux/060-collect-toolchain.sh
- uses: actions/upload-artifact@v2
with:
name: swift-android
path: ~/out/swift-android.zip