Skip to content

Commit

Permalink
chore: optimize ci
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonThormeyer committed Jun 17, 2024
1 parent d0d391e commit e2ab7cf
Show file tree
Hide file tree
Showing 3 changed files with 166 additions and 17 deletions.
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: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: aarch64-apple-darwin
- 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-aarch64-apple-darwin
compile-ffi-swift:
runs-on: ubuntu-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: ubuntu-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

0 comments on commit e2ab7cf

Please sign in to comment.