Skip to content
Closed

WIP #205

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
36 changes: 36 additions & 0 deletions .github/workflows/build-app.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build APP

on:
workflow_dispatch: # Allows manual triggering
pull_request:
branches:
- main

jobs:
build_app:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: "21"
distribution: "zulu"

- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Create Keystore
env:
ANDROID_KEYSTORE_FILE: ${{ secrets.APP_SIGNING_KEY }}
run: |
mkdir -p $HOME/.android
echo $ANDROID_KEYSTORE_FILE | base64 --decode > $HOME/.android/debug.keystore
- name: Build Release apk
working-directory: app
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
ANDROID_KEYSTORE_ALIAS: solana_dapp
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.APP_SIGNING_KEYSTORE_PASSWORD }}
ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD: ${{ secrets.APP_SIGNING_KEY_SOLANA_DAPP_PASSWORD }}
run: ./gradlew assembleRelease --stacktrace
112 changes: 78 additions & 34 deletions app/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,22 @@ plugins {

import java.text.SimpleDateFormat
import org.yaml.snakeyaml.Yaml
import groovy.json.JsonSlurper
import org.apache.commons.io.FilenameUtils

def githubRepo = 'urnetwork/sdk'
def latestReleaseUrl = "https://api.github.com/repos/${githubRepo}/releases/latest"
def downloadDir = "${buildDir}/downloads"

def bringyourHomeDir = System.getenv('BRINGYOUR_HOME') ?: "${System.env.HOME}/bringyour"
def bringyourHomeDir = System.getenv('BRINGYOUR_HOME') ?: "."

subprojects { subproject ->
subproject.tasks.whenTaskAdded {
if (it.name.contains("kapt")) {
it.enabled = false
}
}
}
ext.envSecret = { envName ->
def servicesFile = file("$bringyourHomeDir/vault/$envName/services.yml")
if (servicesFile.exists()) {
Expand All @@ -41,31 +53,41 @@ ext.envSecret = { envName ->
}

android {
ext.appVersion = { ->
def out = new ByteArrayOutputStream()
def osName = ''
def osArch = ''
switch (System.getProperty('os.name')) {
case 'Linux':
osName = 'linux'
break
case 'Mac OS X':
osName = 'darwin'
break
}
switch (System.getProperty('os.arch')) {
case 'amd64':
osArch = 'amd64'
case 'aarch64':
osArch = 'arm64'
break
}
exec {
executable "${bringyourHomeDir}/warp/warpctl/build/${osName}/${osArch}/warpctl"
args 'ls', 'version', '-b'
standardOutput out
}
out.toString().trim()

compileOptions {
sourceCompatibility JavaVersion.VERSION_19
targetCompatibility JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = '19'
}

ext.appVersion = { -> "1.2.3"

// def out = new ByteArrayOutputStream()
// def osName = ''
// def osArch = ''
// switch (System.getProperty('os.name')) {
// case 'Linux':
// osName = 'linux'
// break
// case 'Mac OS X':
// osName = 'darwin'
// break
// }
// switch (System.getProperty('os.arch')) {
// case 'amd64':
// osArch = 'amd64'
// case 'aarch64':
// osArch = 'arm64'
// break
// }
// exec {
// executable "${bringyourHomeDir}/warp/warpctl/build/${osName}/${osArch}/warpctl"
// args 'ls', 'version', '-b'
// standardOutput out
// }
// out.toString().trim()
}
ext.appVersionCode = { ->
// hours since company founding
Expand Down Expand Up @@ -98,10 +120,10 @@ android {

signingConfigs {
debug {
storeFile file("${System.properties['user.home']}/.android/debug.keystore")
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
storeFile file(System.getenv('ANDROID_KEYSTORE_FILE') ?: "${System.properties['user.home']}/.android/debug.keystore")
keyAlias System.getenv('ANDROID_KEYSTORE_ALIAS') ?: 'androiddebugkey'
keyPassword System.getenv('ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD') ?: 'android'
storePassword System.getenv('ANDROID_KEYSTORE_PASSWORD') ?: 'android'
}
}

Expand Down Expand Up @@ -269,14 +291,36 @@ android {
kotlinCompilerExtensionVersion = "1.5.13"
}

tasks.register('goclientBuild', Exec) {
workingDir "${bringyourHomeDir}/sdk"
commandLine 'make', 'init', 'build_android'
// tasks.register('goclientBuild', Exec) {
// // workingDir "${bringyourHomeDir}/sdk"
// commandLine 'bash' '-c' ''
// }

task downloadLatestReleaseArtifacts {
doLast {
def conn = new URL(latestReleaseUrl).openConnection()

def json = new JsonSlurper().parse(conn.inputStream)
json.assets.each { asset ->
if (asset.name.endsWith('.jar') || asset.name.endsWith('.aar')) {
def downloadUrl = asset.browser_download_url
def fileName = FilenameUtils.getName(downloadUrl)
def file = new File(downloadDir, fileName)
if (!file.parentFile.exists()) {
file.parentFile.mkdirs()
}
println "Downloading ${downloadUrl}"
file.withOutputStream { out ->
new URL(downloadUrl).withInputStream { from -> out << from }
}
}
}
}
}

tasks.withType(JavaCompile).tap {
configureEach {
compileTask -> compileTask.dependsOn goclientBuild
compileTask -> compileTask.dependsOn downloadLatestReleaseArtifacts
}
}
}
Expand Down
22 changes: 18 additions & 4 deletions app/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,27 @@ dependencyResolutionManagement {

// circle sdk
maven {

def mavenPassword = System.getenv("GITHUB_TOKEN") ?: null



Properties properties = new Properties()
properties.load(new File(rootDir.absolutePath + "/dependencies.properties").newDataInputStream())
url properties.getProperty('pwsdk.maven.url')

credentials {
username properties.getProperty('pwsdk.maven.username')
password properties.getProperty('pwsdk.maven.password')
if (mavenPassword != null) {
url properties.getProperty('pwsdk.maven.url')
credentials {
username 'x-access-token'
password mavenPassword
}
} else {
url properties.getProperty('pwsdk.maven.url')

credentials {
username properties.getProperty('pwsdk.maven.username')
password properties.getProperty('pwsdk.maven.password')
}
}
}
}
Expand Down
Loading