Skip to content
Merged
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
43 changes: 25 additions & 18 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,38 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
target: [Android, Windows, Linux]
target: [Android, PlayStore, Windows, Linux]
include:
- os: windows-2019
- os: windows-latest
target: Windows
build_target: windows
build_path: build\windows\runner\Release
build_path: build\windows\x64\runner\Release
asset_extension: .zip
asset_content_type: application/zip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Linux
build_target: linux
build_path: build/linux/x64/release/bundle
asset_extension: .tar.gz
asset_content_type: application/gzip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Android
build_target: apk
build_path: build/app/outputs/flutter-apk
asset_extension: .apk
asset_content_type: application/vnd.android.package-archive
- os: ubuntu-latest
target: PlayStore
build_target: aab
build_path: build/app/outputs/bundle/release
asset_extension: .aab
asset_content_type: application/x-authorware-bin
# Disable fail-fast as we want results from all even if one fails.
fail-fast: false
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@4389e6cbc6cb8a4b18c628ff96ff90be0e926aa8
uses: subosito/flutter-action@v2
with:
channel: master

Expand All @@ -46,12 +52,13 @@ jobs:
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev
- name: Install Android dependencies
if: matrix.target == 'Android'
uses: actions/setup-java@v1
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
uses: actions/setup-java@v4
with:
java-version: '12.x'
distribution: 'temurin'
java-version: '21'
- name: Enable desktop support
if: matrix.target != 'Android'
if: matrix.target != 'Android' && matrix.target != 'PlayStore'
run: |
flutter config --enable-linux-desktop
flutter config --enable-macos-desktop
Expand All @@ -61,11 +68,11 @@ jobs:

# Checkout NSSL code, recreate missing files, and get packages.
- name: Checkout NSSL code
uses: actions/checkout@v2
uses: actions/checkout@v4
- run: flutter create . --project-name nssl --org de.susch19
- run: flutter pub get
- name: Configure Keystore for Android
if: matrix.target == 'Android'
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
run: |
echo "$KEY_STORE_FILE" | base64 --decode > app/nssl-keystore.jks
echo "storeFile=nssl-keystore.jks" >> key.properties
Expand Down Expand Up @@ -119,22 +126,22 @@ jobs:
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\msvcp140.dll') .
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140.dll') .
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140_1.dll') .
- name: Rename build for Android
if: matrix.target == 'Android'
run: mv app-release.apk $GITHUB_WORKSPACE/nssl_${{ matrix.target }}.apk
- name: Rename build for ${{ matrix.target }}
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
run: mv app-release${{ matrix.asset_extension }} $GITHUB_WORKSPACE/nssl_${{ matrix.target }}${{ matrix.asset_extension }}
working-directory: ${{ matrix.build_path }}
- name: Compress build for Linux
if: matrix.target == 'Linux'
run: tar czf $GITHUB_WORKSPACE/nssl_${{ matrix.target }}.tar.gz *
run: tar czf $GITHUB_WORKSPACE/nssl_${{ matrix.target }}${{ matrix.asset_extension }} *
working-directory: ${{ matrix.build_path }}
- name: Compress build for Windows
if: matrix.target == 'Windows'
run: compress-archive -Path * -DestinationPath ${env:GITHUB_WORKSPACE}\nssl_${{ matrix.target }}.zip
run: compress-archive -Path * -DestinationPath ${env:GITHUB_WORKSPACE}\nssl_${{ matrix.target }}${{ matrix.asset_extension }}
working-directory: ${{ matrix.build_path }}

# Upload the build.
- name: Add build into artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: nssl_${{ matrix.target }}${{ matrix.asset_extension }}
path: ./nssl_${{ matrix.target }}${{ matrix.asset_extension }}
43 changes: 25 additions & 18 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
future_release: ${{ github.ref }}
#since_tag: ${{ steps.get_latest_release.outputs.release }}
- name: Upload changelog
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: changelog
path: CHANGELOG.md
Expand All @@ -39,7 +39,7 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Download changelog
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: changelog
- name: Draft release with changelog
Expand All @@ -60,33 +60,39 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
target: [Android, Windows, Linux]
target: [Android, PlayStore, Windows, Linux]
include:
- os: windows-2019
- os: windows-latest
target: Windows
build_target: windows
build_path: build\windows\runner\Release
build_path: build\windows\x64\runner\Release
asset_extension: .zip
asset_content_type: application/zip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Linux
build_target: linux
build_path: build/linux/x64/release/bundle
asset_extension: .tar.gz
asset_content_type: application/gzip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Android
build_target: apk
build_path: build/app/outputs/flutter-apk
asset_extension: .apk
asset_content_type: application/vnd.android.package-archive
- os: ubuntu-latest
target: PlayStore
build_target: aab
build_path: build/app/outputs/bundle/release
asset_extension: .aab
asset_content_type: application/x-authorware-bin
# Disable fail-fast as we want results from all even if one fails.
fail-fast: false
needs: draft-release
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@4389e6cbc6cb8a4b18c628ff96ff90be0e926aa8
uses: subosito/flutter-action@v2
with:
channel: master

Expand All @@ -96,12 +102,13 @@ jobs:
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev
- name: Install Android dependencies
if: matrix.target == 'Android'
uses: actions/setup-java@v1
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
uses: actions/setup-java@v4
with:
java-version: '12.x'
distribution: 'temurin'
java-version: '21'
- name: Enable desktop support
if: matrix.target != 'Android'
if: matrix.target != 'Android' && matrix.target != 'PlayStore'
run: |
flutter config --enable-linux-desktop
flutter config --enable-macos-desktop
Expand All @@ -111,11 +118,11 @@ jobs:

# Checkout NSSL code, recreate missing files, and get packages.
- name: Checkout NSSL code
uses: actions/checkout@v2
uses: actions/checkout@v4
- run: flutter create . --project-name nssl --org de.susch19
- run: flutter pub get
- name: Configure Keystore for Android
if: matrix.target == 'Android'
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
run: |
echo "$KEY_STORE_FILE" | base64 --decode > app/nssl-keystore.jks
echo "storeFile=nssl-keystore.jks" >> key.properties
Expand Down Expand Up @@ -169,17 +176,17 @@ jobs:
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\msvcp140.dll') .
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140.dll') .
Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140_1.dll') .
- name: Rename build for Android
if: matrix.target == 'Android'
run: mv app-release.apk $GITHUB_WORKSPACE/nssl_${{ matrix.target }}.apk
- name: Rename build for ${{ matrix.target }}
if: matrix.target == 'Android' || matrix.target == 'PlayStore'
run: mv app-release${{ matrix.asset_extension }} $GITHUB_WORKSPACE/nssl_${{ matrix.target }}${{ matrix.asset_extension }}
working-directory: ${{ matrix.build_path }}
- name: Compress build for Linux
if: matrix.target == 'Linux'
run: tar czf $GITHUB_WORKSPACE/nssl_${{ matrix.target }}.tar.gz *
working-directory: ${{ matrix.build_path }}
- name: Compress build for Windows
if: matrix.target == 'Windows'
run: compress-archive -Path * -DestinationPath ${env:GITHUB_WORKSPACE}\nssl_${{ matrix.target }}.zip
run: compress-archive -Path * -DestinationPath ${env:GITHUB_WORKSPACE}\nssl_${{ matrix.target }}${{ matrix.asset_extension }}
working-directory: ${{ matrix.build_path }}

# Upload the build.
Expand Down
72 changes: 39 additions & 33 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
Expand All @@ -6,36 +12,49 @@ if (localPropertiesFile.exists()) {
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
compileSdkVersion 33
namespace "de.susch19.nssl"
compileSdk flutter.compileSdkVersion

lintOptions {
checkReleaseBuilds false // Add this
disable 'InvalidPackage'
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}

defaultConfig {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
applicationId 'de.susch19.nssl'
resValue "string", "app_name", "NSSL"
multiDexEnabled true
minSdkVersion 21
targetSdkVersion 33
minSdk 23
targetSdk flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

signingConfigs {
Expand All @@ -57,26 +76,13 @@ android {
resValue "string", "app_name", "NSSL Debug"
}
}

}

flutter {
source '../..'
}


dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
//
//configurations.all {
// resolutionStrategy.eachDependency { DependencyResolveDetails details ->
// def requested = details.requested
// if (requested.group == 'com.android.support') {
// if (!requested.name.startsWith("multidex")) {
// details.useVersion '27.0.0'
// }
// }
// }
//}
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
}
29 changes: 5 additions & 24 deletions android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,37 +1,18 @@


buildscript {
ext.kotlin_version = '1.5.20'
allprojects {
repositories {
google()
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath 'com.google.gms:google-services:4.3.14'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

rootProject.allprojects {
repositories {
google()
mavenCentral()
}
}

rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}


ext{

firebaseMessagingVersion = "21.1.0"
}
2 changes: 1 addition & 1 deletion android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
android.enableJetifier=true
android.useAndroidX=true
android.enableR8=true
org.gradle.jvmargs=-Xmx1536M
org.gradle.jvmargs=-Xmx2048M
Loading