Skip to content
Merged

Dev #442

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
2 changes: 1 addition & 1 deletion .github/workflows/staging-version-bump.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
with:
python-version: '3.x'

- name: Run bump_versions.py
- name: Run bump_version.py
id: bump
run: |
output=$(python bump_versions.py \
Expand Down
66 changes: 66 additions & 0 deletions .kotlin/errors/errors-1773154801796.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
kotlin version: 2.3.0
error message: The daemon has terminated unexpectedly on startup attempt #1 with exit code: 1. The daemon process output:
1. Invalid maximum heap size: -Xmx512m -Xss1m
2. Error: Could not create the Java Virtual Machine.
3. Error: A fatal exception has occurred. Program will exit.
The daemon didn't produce the message "Kotlin compile daemon is ready" during startup.

error message: The daemon has terminated unexpectedly on startup attempt #2 with exit code: 1. The daemon process output:
1. Invalid maximum heap size: -Xmx512m -Xss1m
2. Error: Could not create the Java Virtual Machine.
3. Error: A fatal exception has occurred. Program will exit.
Problems may have occurred during auto-selection of GC. The preferred GC is Parallel GC.
If the problems persist, try adding the JVM option to the Kotlin daemon JVM arguments: -XX:-UseParallelGC.
GC auto-selection logic is disabled temporary for the next daemon startup.
The daemon didn't produce the message "Kotlin compile daemon is ready" during startup.

error message: The daemon has terminated unexpectedly on startup attempt #3 with exit code: 1. The daemon process output:
1. Invalid maximum heap size: -Xmx512m -Xss1m
2. Error: Could not create the Java Virtual Machine.
3. Error: A fatal exception has occurred. Program will exit.
The daemon didn't produce the message "Kotlin compile daemon is ready" during startup.

error message: Failed connecting to the daemon in 4 retries

error message: Daemon compilation failed: Could not connect to Kotlin compile daemon
java.lang.RuntimeException: Could not connect to Kotlin compile daemon
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:198)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:143)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:107)
at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:75)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
at org.gradle.internal.Factories$1.create(Factories.java:31)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)


55 changes: 26 additions & 29 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,35 +1,32 @@
FROM ubuntu:22.04 AS base
FROM ubuntu:jammy-20230624@sha256:b060fffe8e1561c9c3e6dea6db487b900100fc26830b9ea2ec966c151ab4c020

RUN apt update && apt install -y openjdk-17-jdk openjdk-17-jre android-sdk sdkmanager
RUN apt update
RUN apt install -y git openjdk-17-jdk unzip wget

WORKDIR /android

COPY . .

ENV ANDROID_HOME "/usr/lib/android-sdk/"
ENV PATH "${PATH}:${ANDROID_HOME}tools/:${ANDROID_HOME}platform-tools/"
# ENV GRADLE_OPTS "-Xmx2048m"

RUN yes | sdkmanager --licenses

ENV PASS=""
ENV MIN_SDK=""

# CMD ./gradlew assembleDebug
FROM base as apk-builder
CMD ./gradlew assembleRelease && \
apksigner sign --ks app/keys/app-release-key.jks \
--ks-pass pass:$PASS \
--in app/build/outputs/apk/release/app-release-unsigned.apk \
--out app/build/outputs/apk/release/app-release.apk

FROM base as bundle-builder
CMD ./gradlew assemble bundleRelease && \
apksigner sign --ks app/keys/app-release-key.jks \
--ks-pass pass:$PASS \
--in app/build/outputs/bundle/release/app-release.aab \
--out app/build/outputs/bundle/release/app-bundle.aab \
--min-sdk-version $MIN_SDK

# CMD cp app/build/outputs/apk/debug/app-debug.apk /apkbuilds/
# CMD sha256sum app/build/outputs/apk/debug/app-debug.apk
RUN apt update
RUN apt install -y git openjdk-17-jdk unzip wget

ENV ANDROID_COMMAND_LINE_TOOLS_FILENAME commandlinetools-linux-10406996_latest.zip
ENV ANDROID_API_LEVELS android-36
ENV ANDROID_BUILD_TOOLS_VERSION 35.0.0

ENV ANDROID_HOME /usr/local/android-sdk-linux
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/cmdline-tools/bin

RUN cd /usr/local/
RUN wget -q "https://dl.google.com/android/repository/${ANDROID_COMMAND_LINE_TOOLS_FILENAME}"
RUN unzip ${ANDROID_COMMAND_LINE_TOOLS_FILENAME} -d /usr/local/android-sdk-linux
RUN rm ${ANDROID_COMMAND_LINE_TOOLS_FILENAME}

RUN yes | sdkmanager --update --sdk_root="${ANDROID_HOME}"
RUN yes | sdkmanager --sdk_root="${ANDROID_HOME}" "platforms;${ANDROID_API_LEVELS}" "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" "extras;google;m2repository" "extras;android;m2repository" "extras;google;google_play_services" "ndk;28.0.13004108" "cmake;3.22.1"

RUN yes | sdkmanager --licenses --sdk_root="${ANDROID_HOME}"

RUN rm -rf ${ANDROID_HOME}/tools

RUN git config --global --add safe.directory /project
32 changes: 10 additions & 22 deletions bump_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,7 @@
import sys
import requests

def get_latest_tag():
"""Get the latest tag from the repository."""
url = "https://api.github.com/repos/dekusms/DekuSMS-Android/tags"
response = requests.get(url)
response.raise_for_status()

return response.json()[0]["name"]

def bump_version(filename, flavour):
def bump_version(tagVersion, filename, flavour):
"""
Bumps the version number in the specified file.

Expand All @@ -28,7 +20,6 @@ def bump_version(filename, flavour):
releaseVersion = None
stagingVersion = None
nightlyVersion = None
tagVersion = get_latest_tag()

for line in lines:
if line.startswith("releaseVersion="):
Expand Down Expand Up @@ -71,20 +62,17 @@ def bump_version(filename, flavour):

tagVersion = int(tagVersion) + 1

with open(filename, "w") as f:
f.write("releaseVersion=" + str(releaseVersion) + "\n")
f.write("stagingVersion=" + str(stagingVersion) + "\n")
f.write("nightlyVersion=" + str(nightlyVersion) + "\n")
f.write(f"versionName={str(releaseVersion)}.{str(stagingVersion)}.{str(nightlyVersion)}\n")
f.write("tagVersion=" + str(tagVersion))

return releaseVersion, stagingVersion, nightlyVersion, tagVersion
return f"""releaseVersion={str(releaseVersion)}
stagingVersion={str(stagingVersion)}
nightlyVersion={str(nightlyVersion)}
versionName={str(releaseVersion)}.{str(stagingVersion)}.{str(nightlyVersion)}
tagVersion={str(tagVersion)}"""


if __name__ == "__main__":
filename = "version.properties"

flavour = sys.argv[1]
releaseVersion, stagingVersion, nightlyVersion, tagVersion = bump_version(filename, flavour)
print("+ successful version bump: ",
releaseVersion, stagingVersion, nightlyVersion, tagVersion)
tag = sys.argv[1]
flavour = sys.argv[2]
version = bump_version(tag, filename, flavour)
print(version)
37 changes: 37 additions & 0 deletions docker_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash

set -eou pipefail

image_name=deku_rep_build_release

docker build -t deku_rep_build_release .

docker run --rm -v "$(pwd)":/project -w /project --user "$(id -u):$(id -g)" $image_name \
./gradlew assembleRelease \
--no-daemon \
--max-workers=2 \
--console=plain \
-Dorg.gradle.jvmargs="-Xmx1024m -Xms256m -XX:MaxMetaspaceSize=384m -Dfile.encoding=UTF-8" \
-Dkotlin.daemon.jvm.options="-Xmx512m,-Xss1m" \
-Dkotlin.compiler.execution.strategy=in-process
sha1=$( sha256sum app/build/outputs/apk/release/app-release-unsigned.apk )
rm app/build/outputs/apk/release/app-release-unsigned.apk

docker run --rm -v "$(pwd)":/project -w /project --user "$(id -u):$(id -g)" $image_name \
./gradlew assembleRelease \
--no-daemon \
--max-workers=2 \
--console=plain \
-Dorg.gradle.jvmargs="-Xmx1024m -Xms256m -XX:MaxMetaspaceSize=384m -Dfile.encoding=UTF-8" \
-Dkotlin.daemon.jvm.options="-Xmx512m,-Xss1m" \
-Dkotlin.compiler.execution.strategy=in-process

sha2=$( sha256sum app/build/outputs/apk/release/app-release-unsigned.apk )
echo "$sha1"
echo "$sha1"

if [ "$sha1" eq "$sha2" ]; then
echo "All good! Reproducible"
else
echo "Not reproducible..."
fi
Loading