From c06e73743aa1bd8a7cd269667e76ce37d984ea9c Mon Sep 17 00:00:00 2001 From: Ignacio Date: Sat, 24 Aug 2024 10:54:38 -0300 Subject: [PATCH 1/4] Remove tasks.convert_images Upgrade Renkit version --- .woodpecker.yml | 2 +- renconstruct.toml | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 5035cef..a1d1f09 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -80,4 +80,4 @@ matrix: RenpyVersion: - "8.2.3" RenkitVersion: - - "4.3.0" + - "4.4.0" diff --git a/renconstruct.toml b/renconstruct.toml index abb6886..b173c4c 100644 --- a/renconstruct.toml +++ b/renconstruct.toml @@ -11,18 +11,6 @@ keystore_apk = "" # the base-64 encoded binary keystore file for the APK bundles keystore_aab = "" # the base-64 encoded binary keystore file for the AAB bundles -[tasks.convert_images] - enabled = false - format = "webp" # webp or avif - priorities = { pre_build = 10 } # the priority that determines the orders tasks will run in, defaults to 10 - on_builds = ["pc", "win", "linux", "mac", "web", "steam", "market", "android_apk", "android_aab"] # builds this task should run for, defaults to all available builds - # extensions: a list of file extensions to convert - # recursive: scans directories recursively if enabled, otherwise only scans the immediate directory - # lossless: converts to lossless WebP if enabled, otherwise converts to lossy WebP - "game/images/cg" = { extensions = ["png", "jpg"], recursive = true, lossless = true } # default values - "game/images/bg" = { lossless = false } - "game/images" = { } # all parameters are optional - [build] # required, at least one item must be 'true' #pc = true # windows + linux win = true # windows From 002e2b6a1321d80e3ef8491eaa156d798ea99859 Mon Sep 17 00:00:00 2001 From: Ignacio Date: Sat, 24 Aug 2024 11:18:20 -0300 Subject: [PATCH 2/4] Delete android from woodpecker.yml --- .woodpecker.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index a1d1f09..0fc86e0 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -33,8 +33,6 @@ steps: #Get Renkit - wget -qO- "https://github.com/kobaltcore/renkit/releases/download/v${RenkitVersion}/renkit-x86_64-unknown-linux-gnu.tar.xz" | tar -Jax --directory=/tmp/ - /tmp/renkit-x86_64-unknown-linux-gnu/renconstruct build "." dist/ - - mkdir "dist/android" - - mv dist/*.apk "dist/android" - cd /tmp/ archival-sha: From 9ef954bd9f0f082e444bebca66d79115946b45d5 Mon Sep 17 00:00:00 2001 From: Ignacio Date: Sat, 24 Aug 2024 11:40:18 -0300 Subject: [PATCH 3/4] Add keystore keys from Wani --- .woodpecker.yml | 2 ++ renconstruct.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 0fc86e0..a1d1f09 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -33,6 +33,8 @@ steps: #Get Renkit - wget -qO- "https://github.com/kobaltcore/renkit/releases/download/v${RenkitVersion}/renkit-x86_64-unknown-linux-gnu.tar.xz" | tar -Jax --directory=/tmp/ - /tmp/renkit-x86_64-unknown-linux-gnu/renconstruct build "." dist/ + - mkdir "dist/android" + - mv dist/*.apk "dist/android" - cd /tmp/ archival-sha: diff --git a/renconstruct.toml b/renconstruct.toml index b173c4c..c5f5174 100644 --- a/renconstruct.toml +++ b/renconstruct.toml @@ -8,8 +8,8 @@ type="keystore" priorities = { pre_build = 0 } # the priority that determines the orders tasks will run in, defaults to 0 on_builds = ["android_apk", "android_aab"] # builds this task should run for, defaults to all android builds - keystore_apk = "" # the base-64 encoded binary keystore file for the APK bundles - keystore_aab = "" # the base-64 encoded binary keystore file for the AAB bundles + keystore_apk = "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" # the base-64 encoded binary keystore file for the APK bundles + keystore_aab = "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" # the base-64 encoded binary keystore file for the AAB bundles [build] # required, at least one item must be 'true' #pc = true # windows + linux From 50b64f170eb57ee712d8c29c731ecf58c79c58e4 Mon Sep 17 00:00:00 2001 From: Ignacio Date: Sat, 24 Aug 2024 15:33:01 -0300 Subject: [PATCH 4/4] Add missing files to fix Woodpecker build --- android.json | 24 ++++++++++++++++++++++++ android.keystore | Bin 0 -> 2071 bytes bundle.keystore | Bin 0 -> 2072 bytes renconstruct.toml | 3 ++- update.pem | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 android.json create mode 100644 android.keystore create mode 100644 bundle.keystore create mode 100644 update.pem diff --git a/android.json b/android.json new file mode 100644 index 0000000..5167cf5 --- /dev/null +++ b/android.json @@ -0,0 +1,24 @@ +{ + "expansion": false, + "google_play_key": null, + "google_play_salt": null, + "heap_size": "3", + "icon_name": "Snoot Game", + "include_pil": false, + "include_sqlite": false, + "layout": null, + "name": "Snoot Game", + "numeric_version": 1, + "orientation": "sensorLandscape", + "package": "cavemanon.snootgame", + "permissions": [ + "VIBRATE", + "INTERNET" + ], + "source": false, + "store": "none", + "update_always": true, + "update_icons": true, + "update_keystores": true, + "version": "INTERNAL-BUILD" +} \ No newline at end of file diff --git a/android.keystore b/android.keystore new file mode 100644 index 0000000000000000000000000000000000000000..ab39a4531bbefd7ca09ffa3b335f4a645f5bf934 GIT binary patch literal 2071 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