Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: optimize ci #584

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 0 additions & 16 deletions .github/workflows/bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,6 @@ jobs:
cd crypto-ffi/bindings
./gradlew android:build -x lint -x lintRelease

check-swift:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- run: |
cd crypto-ffi
cargo make ios-create-xcframework

check-wasm:
runs-on: ubuntu-latest
env:
Expand Down
159 changes: 159 additions & 0 deletions .github/workflows/swift-bindings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: Check swift

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches:
- develop
pull_request:

env:
CARGO_TERM_COLOR: always
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"

jobs:
release-build:
runs-on: macos-latest # cross compiling fails with AARCH64_APPLE_DARWIN_OPENSSL_NO_VENDOR unset
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run release-build
run: |
cd crypto-ffi
cargo make release-build

compile-ffi-swift:
runs-on: macos-latest
needs: release-build
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run compile-ffi-swift
run: |
cd crypto-ffi
cargo make compile-ffi-swift

ffi-swift:
runs-on: macos-latest
needs: compile-ffi-swift
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ffi-swift
run: |
cd crypto-ffi
cargo make ffi-swift

ios-device:
runs-on: macos-latest
needs: ffi-swift
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ios-device
run: |
cd crypto-ffi
cargo make ios-device

ios-simulator-x86:
runs-on: macos-latest
needs: ffi-swift
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "x86_64-apple-ios"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ios-simulator-x86
run: |
cd crypto-ffi
cargo make ios-simulator-x86

ios-simulator-arm:
runs-on: macos-latest
needs: ffi-swift
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios-sim"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ios-simulator-arm
env:
CRATE_CC_NO_DEFAULTS: 1
TARGET_CFLAGS: $(echo "--target=arm64-apple-ios14.0.0-simulator -mios-simulator-version-min=14.0 -isysroot `xcrun --show-sdk-path --sdk iphonesimulator`")
run: |
cd crypto-ffi
cargo make ios-simulator-arm

ios:
runs-on: macos-latest
needs: [ios-device, ios-simulator-x86, ios-simulator-arm]
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ios
run: |
cd crypto-ffi
cargo make ios

ios-create-xcframework:
runs-on: macos-latest
needs: ios
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: "aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim"
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
- name: Setup cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run ios-create-xcframework
run: |
cd crypto-ffi
cargo make ios-create-xcframework
8 changes: 7 additions & 1 deletion crypto-ffi/Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ args = ["check"]
command = "cargo"
args = ["build", "--release"]

# Needed to cross compile for apple on linux in CI
#[tasks.release-build-aarch64-apple-darwin]
#command = "cargo"
#args = ["build", "--release", "--target", "aarch64-apple-darwin"]

##################################### DOCS ####################################

[tasks.docs-rust-generic]
Expand Down Expand Up @@ -119,6 +124,7 @@ args = ["run", "build_ts.ts"]

[tasks.compile-ffi-swift]
dependencies = ["release-build"]
#linux = { dependencies = ["release-build-aarch64-apple-darwin"] }
command = "cargo"
args = [
"run",
Expand All @@ -127,7 +133,7 @@ args = [
"generate",
"--language", "swift",
"--out-dir", "./bindings/swift/WireCoreCrypto/WireCoreCrypto",
"--library", "../target/release/libcore_crypto_ffi.${LIBRARY_EXTENSION}"
"--library", "../target/release/libcore_crypto_ffi.dylib"
]

[tasks.ffi-swift]
Expand Down
Loading