From fe3bb73326d302a01f954b59351501a9c903215f Mon Sep 17 00:00:00 2001 From: Map Date: Sun, 8 Jun 2025 11:27:46 -0500 Subject: [PATCH] initial build system import --- .gitea/ISSUE_TEMPLATE/choreo.yaml | 21 ++++++++ .gitea/workflows/release.yml | 58 ++++++++++++++++++++ .woodpecker.yml | 88 ------------------------------- game/options.rpy | 12 +++-- renconstruct-gitea.toml | 20 +++++++ renconstruct.toml | 17 +++--- 6 files changed, 112 insertions(+), 104 deletions(-) create mode 100644 .gitea/ISSUE_TEMPLATE/choreo.yaml create mode 100644 .gitea/workflows/release.yml delete mode 100644 .woodpecker.yml create mode 100644 renconstruct-gitea.toml diff --git a/.gitea/ISSUE_TEMPLATE/choreo.yaml b/.gitea/ISSUE_TEMPLATE/choreo.yaml new file mode 100644 index 0000000..1000bc1 --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/choreo.yaml @@ -0,0 +1,21 @@ +name: Choreography Problem +about: A template for discussing choreography problems +title: "[Chapter XX]: " +labels: +- bug +- "help wanted" +body: + - type: input + id: where + attributes: + label: On what line did this bug occour? + placeholder: "I \"This shit fucks and sucks!\"" + validations: + required: true + - type: textarea + id: what + attributes: + label: "What happened?" + placeholder: "The expression \"Inco Sad\" was used at a time when it shouldn't have been used." + validations: + required: true diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..99dbcf8 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,58 @@ +name: CI Build + +on: + push: + tags: + - '*' + +env: + RenpyVersion: "8.3.7" + RenkitVersion: "6.0.0" + JAVA_HOME: "/usr/lib/jvm/java-21-openjdk-amd64" + +jobs: + build-and-archive: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + repository: Cavemanon/Snoot-Game + fetch-depth: 1 + + - name: Install Dependencies + run: | + sudo apt update + sudo apt install git libgl1 openjdk-21-jdk golang-go -y + JAVA_HOME="/usr/lib/jvm/open-jdk" + + - name: Update Internal Build Name + run: | + sed -i -e "s/INTERNAL-BUILD/${{ gitea.event.release.tag_name }}/g" game/options.rpy + sed -i -e "s/INTERNAL-BUILD/${{ gitea.event.release.tag_name }}/g" android.json + + - name: Build With Renkit + run: | + mkdir dist + sed -i -e "s/VERSION/${{ env.RenpyVersion }}/g" renconstruct-gitea.toml # This is so we can control the renpy version just from this script + wget -q "https://github.com/kobaltcore/renkit/releases/download/v${{ env.RenkitVersion }}/renkit-x86_64-unknown-linux-gnu.tar.xz" -O renkit.tar.xz + tar -xJf renkit.tar.xz -C /tmp/ + rm renkit.tar.xz + /tmp/renkit-x86_64-unknown-linux-gnu/renconstruct build -c "./renconstruct-gitea.toml" "." dist/ + mkdir "dist/android" + mv dist/*.apk "dist/android" + + - name: Upload Release + uses: https://gitea.com/actions/release-action@main + with: + files: dist/* + api_key: '${{ secrets.RELEASE_SMITH_TOKEN }}' +# +# - name: Nextcloud Artifact +# uses: trympet/nextcloud-artifacts-action@v2 +# with: +# name: 'Wani' # Name of the artifact +# path: 'dist/**' # Globbing supported +# nextcloud-url: 'https://cloud.dev.cavemanon.xyz/remote.php/dav/files/ReleaseSmith/Wani/Internal%20Builds/SOMETHING/' # Nextcloud URL +# nextcloud-username: "ReleaseSmith" +# nextcloud-password: ${{ secrets.RELEASE_SMITH_NEXTCLOUD_PASSWORD }} \ No newline at end of file diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index 8aff447..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,88 +0,0 @@ -clone: - git: - image: woodpeckerci/plugin-git - settings: - depth: 1 - -steps: - changelog: - image: debian - commands: - - apt update - - apt install git -y - - mkdir dist - - git log --oneline --decorate --since="7.days" --pretty="## %s%n%an%n%aD%n%b" > dist/README.md || echo "Could not write changelog!" >> dist/README.md #Get that changelog - - version-tag: - image: debian - commands: - - sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" game/options.rpy #Change the internal build name to the tagged version - - sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" android.json - when: - - event: tag - - version-cron: - image: debian - commands: - - sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_SHA}/g" game/options.rpy #if no tag, make it the commit num - - sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_SHA}/g" android.json - when: - - event: cron - - build: - image: openjdk:21-jdk-bookworm - commands: - - apt update - - apt install libgl1 patch -y - - sed -i -e "s/VERSION/${RenpyVersion}/g" game/options.rpy #Change the renpy version to the woodpecker reuqested one. - #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: - image: debian - commands: - - apt update - - apt install curl bash -y - - curl https://git.cavemanon.xyz/Cavemanon/Woodpecker-Webdav/raw/branch/master/push.sh > /tmp/push.sh ## I'd use a proper docker container, but dockerhub is owned by the CIA and I refuse to deal with that (also I don't care to maintain it or set it up). #TODO: merge this script as apart of the file so we don't make unnecessary network requests every time we build. - - chmod +x /tmp/push.sh - - PLUGIN_USERNAME=$RELEASESMITHNEXTCLOUDUSERNAME PLUGIN_PASSWORD=$RELEASESMITHNEXTCLOUDPASSWORD PLUGIN_DESTINATION=https://cloud.dev.cavemanon.xyz/remote.php/dav/files/ReleaseSmith/Snoot%20Game/Internal%20Builds/nightly-${CI_COMMIT_SHA}/ PLUGIN_MAKE_FOLDER_AT=https://cloud.dev.cavemanon.xyz/remote.php/dav/files/ReleaseSmith/Snoot%20Game/Internal%20Builds/nightly-${CI_COMMIT_SHA}/ PLUGIN_FILE_GLOB=dist/* /tmp/push.sh #sovl - - rm -rf "dist" - secrets: [ releasesmithnextcloudusername, releasesmithnextcloudpassword ] - when: - - event: cron - cron: "nightly" - - archival-tag: - image: debian - commands: - - apt update - - apt install curl bash -y - - curl https://git.cavemanon.xyz/Cavemanon/Woodpecker-Webdav/raw/branch/master/push.sh > /tmp/push.sh ## I'd use a proper docker container, but dockerhub is owned by the CIA and I refuse to deal with that (also I don't care to maintain it or set it up). #TODO: merge this script as apart of the file so we don't make unnecessary network requests every time we build. - - chmod +x /tmp/push.sh - - PLUGIN_USERNAME=$RELEASESMITHNEXTCLOUDUSERNAME PLUGIN_PASSWORD=$RELEASESMITHNEXTCLOUDPASSWORD PLUGIN_DESTINATION=https://cloud.dev.cavemanon.xyz/remote.php/dav/files/ReleaseSmith/Snoot%20Game/Internal%20Builds/release-${CI_COMMIT_TAG}/ PLUGIN_MAKE_FOLDER_AT=https://cloud.dev.cavemanon.xyz/remote.php/dav/files/ReleaseSmith/Snoot%20Game/Internal%20Builds/release-${CI_COMMIT_TAG}/ PLUGIN_FILE_GLOB=dist/* /tmp/push.sh #sovl - - rm -rf "dist" - secrets: [ releasesmithnextcloudusername, releasesmithnextcloudpassword ] - when: - - event: tag - - release: - image: woodpeckerci/plugin-gitea-release:latest - settings: - base_url: https://git.cavemanon.xyz - api_key: - from_secret: releasesmithapikey - files: "*-dists/*" - prerelease: true - title: "${CI_COMMIT_TAG}" - when: - - event: tag - -matrix: - RenpyVersion: - - "8.3.4" - RenkitVersion: - - "4.4.0" diff --git a/game/options.rpy b/game/options.rpy index 8d9c697..5193a2c 100644 --- a/game/options.rpy +++ b/game/options.rpy @@ -230,17 +230,19 @@ init python: build.classify('**/#**', None) build.classify('**/thumbs.db', None) - # Do not include mod folders as part of the build process - build.classify('game/mods/*/', None) + # Do not include dev folders on distribution + build.classify('game/dev/', None) + build.classify('README.md', None) #Development files need not apply - build.classify('README.md', None) - build.classify('renconstruct.toml', None) + build.classify('renconstruct*', None) build.classify('bundle.keystore', None) build.classify('android.keystore', None) build.classify('bundle.keystore.original', None) build.classify('android.keystore.original', None) - build.classify('*dist/*', None) + build.classify('patch*', None) + build.classify('dist/', None) + build.classify('cache/', None) ## To archive files, classify them as 'archive'. diff --git a/renconstruct-gitea.toml b/renconstruct-gitea.toml new file mode 100644 index 0000000..3e42b59 --- /dev/null +++ b/renconstruct-gitea.toml @@ -0,0 +1,20 @@ +[tasks.keystore] # required if matching task is enabled + enabled = true + 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 = "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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' + win = true + mac = true + linux = true + android_apk = true # Android Universal APK + +[options] + clear_output_dir = false # whether to clear the output directory on startup + +[renutil] + version = "VERSION" # the Ren'Py version to use (required) + registry = "/tmp/cache" # the directory to store installation files in diff --git a/renconstruct.toml b/renconstruct.toml index 0d30a7e..a5a6e20 100644 --- a/renconstruct.toml +++ b/renconstruct.toml @@ -1,6 +1,6 @@ [tasks.keystore] # required if matching task is enabled - type="keystore" enabled = true + 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 = "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" # the base-64 encoded binary keystore file for the APK bundles @@ -8,19 +8,14 @@ [build] # required, at least one item must be 'true' - # pc = true # windows + linux - win = true # windows - linux = true # linux - mac = true # macos - # web = false # web - # steam = false # steam - # market = false # multiple markets (i.e. itch.io) + win = true + mac = true + linux = true android_apk = true # Android Universal APK - # android_aab = false # Android Play Store Bundle [options] clear_output_dir = false # whether to clear the output directory on startup [renutil] - version = "8.3.4" # the Ren'Py version to use (required) - registry = "/tmp/cache" # the directory to store installation files in + version = "8.3.7" # the Ren'Py version to use (required) + registry = "./cache" # the directory to store installation files in