Skip to content

Commit

Permalink
ci: Re-enable CI for KMP (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
hamada147 authored May 31, 2024
1 parent 6bfca96 commit 8a0bc03
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 130 deletions.
9 changes: 2 additions & 7 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ env:
ATALA_GITHUB_ACTOR: ${{ secrets.ATALA_GITHUB_ACTOR }}
ATALA_GITHUB_TOKEN: ${{ secrets.ATALA_GITHUB_TOKEN }}

on: [pull_request]
on: [ pull_request ]

jobs:
build:
runs-on: macos-latest
runs-on: macos-13
steps:
- name: "Checkout the repo"
uses: actions/checkout@v4
Expand All @@ -40,11 +40,6 @@ jobs:
working-directory: ./anoncred-kmm
run: ./gradlew ktlintCheck

- name: "Install Homebrew"
run: >
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: "Install autoconf, automake, libtool"
run: |
brew install autoconf automake libtool
Expand Down
149 changes: 72 additions & 77 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
with:
commit_message: "chore: prepare release ${{github.event.inputs.tag}}"
tagging_message: ${{github.event.inputs.tag}}

- name: Upload library artifacts
uses: actions/upload-artifact@v3
with:
Expand All @@ -65,82 +65,8 @@ jobs:
file: uniffi/output-frameworks/anoncreds-swift/libanoncreds.xcframework.zip
asset_name: "libanoncreds.xcframework.zip"

# build-kmp:
# name: "Build KMP"
# runs-on: macos-latest
# steps:
# - name: Checkout the repo
# uses: actions/checkout@v3
# with:
# submodules: recursive
# token: ${{ secrets.ATALA_GITHUB_TOKEN }}
# fetch-depth: 0
#
# - name: "Install Java ${{ env.JAVA_VERSION }}"
# uses: actions/setup-java@v3
# with:
# java-version: "${{ env.JAVA_VERSION }}"
# distribution: zulu
#
# - name: Install Homebrew
# run: >
# /bin/bash -c "$(curl -fsSL
# https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
#
# - name: "Install autoconf, automake, libtool"
# run: |
# brew install autoconf automake libtool
#
# - name: "Install Mac ToolChain"
# run: |
# brew tap messense/macos-cross-toolchains
#
# - name: "Install Linux GNU for x86_64"
# run: |
# rm '/usr/local/bin/2to3'
# rm '/usr/local/bin/2to3-3.11'
# rm '/usr/local/bin/2to3-3.12'
# rm '/usr/local/bin/python3'
# rm '/usr/local/bin/python3.11'
# rm '/usr/local/bin/python3.12'
# rm '/usr/local/bin/idle3'
# rm '/usr/local/bin/idle3.11'
# rm '/usr/local/bin/idle3.12'
# rm '/usr/local/bin/pydoc3'
# rm '/usr/local/bin/pydoc3.11'
# rm '/usr/local/bin/pydoc3.12'
# rm '/usr/local/bin/python3-config'
# rm '/usr/local/bin/python3.11-config'
# rm '/usr/local/bin/python3.12-config'
# rm -r '/usr/local/lib/node_modules'
# brew install --overwrite x86_64-unknown-linux-gnu
#
# - name: "Install Linux GNU for aarch64"
# run: |
# brew install --overwrite aarch64-unknown-linux-gnu
#
# - name: "Install Rust Targets"
# run: |
# rustup target add armv7-linux-androideabi
# rustup target add i686-linux-android
# rustup target add aarch64-linux-android
# rustup target add x86_64-linux-android
# rustup target add aarch64-apple-darwin
# rustup target add x86_64-apple-darwin
# rustup target add aarch64-unknown-linux-gnu
# rustup target add x86_64-unknown-linux-gnu
#
# - name: "Install Rust Cargo NDK"
# run: |
# cargo install cargo-ndk
#
# - name: "Publish to GitHub Maven"
# working-directory: ./anoncred-kmm
# run: |
# ./gradlew :anoncreds-kmp:publishAllPublicationsToGitHubPackagesRepository

build-release:
needs: [build-swift-package]
needs: [ build-swift-package ]
name: Build Library

strategy:
Expand Down Expand Up @@ -203,7 +129,7 @@ jobs:
run: |
cd uniffi
cargo build --release --target ${{matrix.target}}
- name: Upload library artifacts
uses: actions/upload-artifact@v3
with:
Expand All @@ -229,3 +155,72 @@ jobs:
tag: ${{github.event.inputs.tag}}
file: library-${{ matrix.architecture }}.tar.gz
asset_name: "library-${{ matrix.architecture }}-${{ github.sha }}.tar.gz"

build-kmp:
name: "Build KMP"
runs-on: macos-13
steps:
- name: Checkout the repo
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.ATALA_GITHUB_TOKEN }}
fetch-depth: 0

- name: "Install Java ${{ env.JAVA_VERSION }}"
uses: actions/setup-java@v4
with:
java-version: "${{ env.JAVA_VERSION }}"
distribution: zulu

- name: "Install autoconf, automake, libtool"
run: |
brew install autoconf automake libtool
- name: "Install Mac ToolChain"
run: |
brew tap messense/macos-cross-toolchains
- name: "Install Linux GNU for x86_64"
run: |
rm '/usr/local/bin/2to3'
rm '/usr/local/bin/2to3-3.11'
rm '/usr/local/bin/2to3-3.12'
rm '/usr/local/bin/python3'
rm '/usr/local/bin/python3.11'
rm '/usr/local/bin/python3.12'
rm '/usr/local/bin/idle3'
rm '/usr/local/bin/idle3.11'
rm '/usr/local/bin/idle3.12'
rm '/usr/local/bin/pydoc3'
rm '/usr/local/bin/pydoc3.11'
rm '/usr/local/bin/pydoc3.12'
rm '/usr/local/bin/python3-config'
rm '/usr/local/bin/python3.11-config'
rm '/usr/local/bin/python3.12-config'
rm -r '/usr/local/lib/node_modules'
brew install --overwrite x86_64-unknown-linux-gnu
- name: "Install Linux GNU for aarch64"
run: |
brew install --overwrite aarch64-unknown-linux-gnu
- name: "Install Rust Targets"
run: |
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
rustup target add aarch64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu
- name: "Install Rust Cargo NDK"
run: |
cargo install cargo-ndk
- name: "Publish to GitHub Maven"
working-directory: ./anoncred-kmm
run: |
./gradlew :anoncreds-kmp:publishAllPublicationsToSonatypeRepository
49 changes: 3 additions & 46 deletions anoncred-kmm/anoncred-wrapper-rust/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,6 @@ fun Project.execWithOutput(spec: ExecSpec.() -> Unit): String {
}
}

/*
fun Project.commandLineWithOutput(vararg commands: String) {
val pb = ProcessBuilder()
}
*/

// TODO: Replace commandLine with
// val pb = ProcessBuilder("brew", "--version")
// pb.start().waitFor()
// println(pb.output)

/**
* Delete the generated `Target` folder that is being generated by Rust Cargo
*/
Expand All @@ -67,26 +56,6 @@ tasks.matching { it.name == "clean" }.all {
dependsOn(rustClean)
}

/**
* Building the original Rust anoncreds lib
* @note no longer needed.
*/
val buildAnoncredsLib by tasks.register<Exec>("buildAnoncredsLib") {
group = "rust"
description = "Building the original Rust anoncreds lib"
onlyIf {
rootDir
.resolve("target")
.resolve("release")
.exists()
.not()
}
workingDir = rootDir.parentFile
inputs.files(rootDir.parentFile.resolve("Cargo.toml"))
outputs.files(fileTree(rootDir.parentFile.resolve("target")))
commandLine("cargo", "build", "--release")
}

// Compiling Tasks

val buildAnonCredWrapperForMacOSArch64 by tasks.register<Exec>("buildAnonCredWrapperForMacOSArch64") {
Expand Down Expand Up @@ -260,7 +229,7 @@ val buildAnonCredWrapperForAndroidUniversal by tasks.register("buildAnonCredWrap
val buildAnonCredWrapper by tasks.register("buildAnonCredWrapper") {
group = "rust-compiling"
description = "Build and compile AnonCred Wrapper"
dependsOn(buildAnonCredWrapperForMacOSUniversal, buildAnonCredWrapperForLinuxUniversal, buildAnonCredWrapperForAndroidUniversal) // buildAnonCredWrapperForiOSUniversal
dependsOn(buildAnonCredWrapperForMacOSUniversal, buildAnonCredWrapperForLinuxUniversal, buildAnonCredWrapperForAndroidUniversal)
}

// Copy Bindings Tasks
Expand Down Expand Up @@ -376,7 +345,7 @@ val copyGeneratedBinaryForAndroid by tasks.register("copyGeneratedBinaryForAndro
val copyGeneratedBinariesToCorrectLocation by tasks.register("copyGeneratedBinariesToCorrectLocation") {
group = "rust-compiling"
description = "Copy all generated binaries to generated resources folder"
dependsOn(copyGeneratedBinaryForMacOS, copyGeneratedBinaryForLinux, copyGeneratedBinaryForAndroid) // copyGeneratedBinaryForiOS
dependsOn(copyGeneratedBinaryForMacOS, copyGeneratedBinaryForLinux, copyGeneratedBinaryForAndroid)
}

/**
Expand All @@ -390,18 +359,6 @@ val copyBindings by tasks.register<Copy>("copyBindings") {
dependsOn(copyGeneratedBinariesToCorrectLocation)
}

/**
* Copy generated dylib to correct location
*/
val copyAnoncredsBinariesToProcessedResources by tasks.register<Copy>("copyAnoncredsBinariesToProcessedResources") {
group = "rust-compiling"
description = "Copy generated AnonCreds binaries to generated resources folder"
include("*.so", "*.a", "*.d", "*.dylib")
from(rootDir.parentFile.resolve("target").resolve("release"))
into(rootDir.resolve("anoncreds-kmp").resolve("build").resolve("generatedResources").resolve("jvm").resolve("main"))
dependsOn(buildAnoncredsLib)
}

/**
* Generate rust documentation
*/
Expand Down Expand Up @@ -631,7 +588,7 @@ val buildRust by tasks.register("buildRust") {
moveRustSrcFiles
}
mustRunAfter(moveRustSrcFiles)
dependsOn(moveRustSrcFiles, requiredInstallation, verifyRust, copyBindings, copyAnoncredsBinariesToProcessedResources)
dependsOn(moveRustSrcFiles, copyBindings)
}

afterEvaluate {
Expand Down

0 comments on commit 8a0bc03

Please sign in to comment.