commit b65636303e9cc6ecb826781349245187fc326cf0 Author: Mamadou Babaei Date: Mon Jan 16 11:27:33 2023 +0100 add sgum-packager v0.1.0 utility for automatic packaging and deployment to epic marketplace diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..569799c6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# Keep CRLF out of the repository +* text=auto + +# LFS: Linux and Windows binaries +sgum-packager filter=lfs diff=lfs merge=lfs -text +sgum-packager.exe filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5575c684 --- /dev/null +++ b/.gitignore @@ -0,0 +1,130 @@ +# Explcitly ignore annoying Windows files, regardless of where they are +[Dd]esktop.ini +Thumbs.db + +# Explcitly ignore annoying macOS files, regardless of where they are +.DS_Store + +# Makefile; only in the project root +/Makefile + +# CMake; only in the project root +/CMakeLists.txt + +# QMake / Qt Creator +*.pro +*Config.pri +*Defines.pri +*Header.pri +*Includes.pri +*Source.pri +.qmake.stash +*.autosave +*.pro.user +*.pro.user.* +CMakeLists.txt.user +CMakeLists.txt.user.* + +# Visual Studio +.vs/ +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Visual Studio Code +.vscode/ +*.code-workspace + +# Code::Blocks +*.workspace + +# CodeLite +*CodeLitePreProcessor.txt + +# KDevelop +.kdev4/ +*.kdev4 + +# CLion +*CodeCompletionFolders.txt + +# IntelliJ IDE +.idea/ + +# Xcode +*.xcodeproj +*.xcworkspace + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* + +# Misc +.ignore + +# Do not ignore anything inside the ThirdParty directory at all +!ThirdParty/**/* + +# Do not ignore the sgum-packager Windows binary +!sgum-packager.exe diff --git a/README.md b/README.md new file mode 100644 index 00000000..77054479 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# SenseGlove Unreal Engine Marketplace Packager + +This branch is a utility branch and is only meant to be used by the publisher of this plugin in order to automatically package the plugin in adherence to the Unreal Engine Marketplace Guidelines. diff --git a/sgum-packager b/sgum-packager new file mode 100755 index 00000000..325f2029 --- /dev/null +++ b/sgum-packager @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbf38cd1290b61865569cdefe375feac71f0cca6c40bb432443554ade72376ae +size 13582336 diff --git a/sgum-packager.exe b/sgum-packager.exe new file mode 100755 index 00000000..e2d559ac --- /dev/null +++ b/sgum-packager.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e5fc013453377bb7ab87bce06e6a54c271b7896c33b7e82e8ed36500b48b063 +size 13920256 diff --git a/sgum-packager.yml b/sgum-packager.yml new file mode 100644 index 00000000..d781694a --- /dev/null +++ b/sgum-packager.yml @@ -0,0 +1,180 @@ +# The SenseGlove Unreal Engine Marketplace Packager configuration file. +# This file is in YAML format. +# Although, the SenseGlove Unreal Engine Marketplace Packager is able to load +# configurations from various file formats by detecting their file extensions. +# Currently, the following configuration formats are supported: +# - JSON +# - TOML +# - YAML +# - HCL +# - INI +# - envfile +# - Java properties config files + + +Archive: + + # Levels range from 1 (BestSpeed) to 9 (BestCompression); higher levels + # typically run slower but compress more. Level 0 (NoCompression) does not + # attempt any compression; it only adds the necessary DEFLATE framing. Level + # -1 (DefaultCompression) uses the default compression level. Level -2 + # (HuffmanOnly) will use Huffman compression only, giving a very fast + # compression for all types of input, but sacrificing considerable compression + # efficiency. + CompressionLevel: 9 + + Directory: + Linux: /tmp/SenseGlove-Unreal/Archive + Windows: "%TEMP%\\SenseGlove-Unreal\\Archive" + + # Brnach will be replaced with the Brnach name corresponding to the engine + # version, e.g. 5.1; and, version will be extracted from the latest tag, e.g. + # v1.0.4; producing SenseGlove-Unreal-5.1-v1.0.4.zip. + NameTemplate: "SenseGlove-Unreal-{BRANCH}-{VERSION}.zip" + + +Deploy: + + Repository: https://{USERNAME}:{PASSWORD}@dev.azure.com/SenseGlove/SenseGlove-Unreal/_git/SenseGlove-Unreal + + UsernameEnvVar: SGUM_PACKAGER_REPOSITORY_USERNAME + + PasswordEnvVar: SGUM_PACKAGER_REPOSITORY_PASSWORD + + Branches: + - "5.1" + - "5.0" + - "4.27" + + Exclusions: + - .git + - sgum-packager + - .clang-format + - .editorconfig + - .gitattributes + - .gitignore + - LICENSE-THIRD-PARTY.md + - LICENSE.md + - README.md + + +Git: + + Executable: + Linux: /usr/bin/git + Windows: "%PROGRAMFILES%\\Git\\bin\\git.exe" + + CloneArguments: + - "--depth" + - "1" + - "--recurse-submodules" + - "--shallow-submodules" + - "--jobs" + - "16" + + CloneDirectory: + Linux: /tmp/SenseGlove-Unreal/Repo + Windows: "%TEMP%\\SenseGlove-Unreal\\Repo" + + +GoogleDrive: + + LocalAuthServerPort: 11111 + + # Follow the instructions below in order to generate the credentials file: + # + # Enable the AP + # In the Google Cloud console, enable the Google Drive API. + # https://console.cloud.google.com/flows/enableapi?apiid=drive.googleapis.com + # + # Authorize credentials for a web application + # 1. In the Google Cloud console, go to Menu menu > APIs & Services > Credentials. + # https://console.cloud.google.com/apis/credentials + # 2. Click Create Credentials > OAuth client ID. + # 3. Click Application type > Desktop app. + # 4. In the Name field, type a name for the credential. This name is only shown in the Google Cloud console. + # 5. Click Create. The OAuth client created screen appears, showing your new Client ID and Client secret. + # 6. Click OK. The newly created credential appears under OAuth 2.0 Client IDs. + # 7. Save the downloaded JSON file as credentials.json, and move the file to your desired directory. + CredentialsFile: + Linux: ~/.config/sgum-packager/credentials.json + Windows: "%LOCALAPPDATA%\\sgum-packager\\credentials.json" + + # This will be auto-generated on the first run + TokenFile: + Linux: ~/.config/sgum-packager/token.json + Windows: "%LOCALAPPDATA%\\sgum-packager\\token.json" + + FolderNameTemplate: SenseGlove-Unreal-{VERSION} + + +# Logging configurations +Logging: + + # The file to write logs to. Supports absolute path or relative paths + # containing environment variables as well.Backup log files will be retained + # in the same directory. It's optional and if left empty, no logs will be + # preserved and logs only go to screen instead of both screen and log files. + Filename: + Linux: ~/.cache/sgum-packager/sgum-packager.log + Windows: "%LOCALAPPDATA%\\sgum-packager\\sgum-packager.log" + + # The maximum allowed size in MBs for the log file before it gets rotated. + # It defaults to 100 megabytes if not specified. + MaxSize: 100 + + # The maximum number of days to retain old log files based on the timestamp + # encoded in their filename. Note that a day is defined as 24 hours and may + # not exactly correspond to calendar days due to daylight savings, leap + # seconds, etc. If not specified, the default is not to remove old log files + # based on age. + MaxAge: 30 + + # Maximum number of old log files to retain. If not specified, the default is + # to retain all old log files (though MaxAge may still cause them to get + # deleted). + MaxBackups: 10 + + # Determines if the time used for formatting the timestamps in backup files is + # the computer's local time. The default is to use UTC time, if not specified. + LocalTime: true + + # Determines whether the rotated log files should be compressed using the gzip + # compression algorithm, or not. The default is not to perform compression, in + # case it's not specified. + Compress: true + + +Rocket: + + RunUAT: true + + UPluginFile: SenseGlove.uplugin + + PackageDirectory: "%TEMP%\\SenseGlove-Unreal\\Rocket" + + EnginePaths: + - "5.1": "C:\\OPT\\UE_5.1" + - "5.0": "C:\\OPT\\UE_5.0" + - "4.27": "C:\\OPT\\UE_4.27" + + +Rsync: + + Executable: + Linux: /usr/bin/rsync + Windows: "%PROGRAMFILES%\\cwrsync\\bin\\rsync.exe" + + StageArguments: + - "--checksum" + - "--delete-after" + - "--ignore-errors" + - "--ignore-times" + - "--links" + - "--perms" + - "--recursive" + - "--verbose" + + DestinationDirectory: + Linux: /tmp/SenseGlove-Unreal/Stage + Windows: "%TEMP%\\SenseGlove-Unreal\\Stage"