Skip to content

This project is a collection of internal tools developed in Python for working with Unreal Engine. It includes functionalities for retrieving version information from a Git repository, updating Unreal Engine configuration files, and handling template files.

License

Notifications You must be signed in to change notification settings

IT-Hock/UEBuildTools

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

UEBuildTools

Unreal Engine Build Tools are tools used by us to execute certain tasks in Unreal Engine projects.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License

About The Project

Logo

Currently the following things are available:

  • Generating a C++ Header with Version Information from Git using a template file
  • Modifying the Version Information in the Project Settings of Unreal Engine
  • Modifying the Version Information for the Crash Report Client

TeamCity.py Script to interact with TeamCity supports:

  • Downloading an artifact
  • Listing Tags
  • Listing BuildTypes
  • Listing SubProjects
  • Listing Projects
  • Listing Artifacts
  • Getting build ids

(back to top)

Built With

  • Python
  • PyCharm
  • Unreal Engine
  • Git

(back to top)

Getting Started

The application currently only contains a "main.py" that does everything.

Prerequisites

Installation

The repository contains a requirements.txt file that can be used to install the required packages.

Using a virtual environment:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Without a virtual environment:

pip install -r requirements.txt

After that you can run the script with the following command:

python main.py --dir /path/to/git/repo

TeamCity.py can be used in the same way:

python TeamCity.py --host https://teamcity.example.com --token YOUR_TOKEN --project ProjectName --buildtype BuildType --tag TagName --artifact ArtifactName

In addition to supplying the token and host, you can set the following environment variables:

export TEAMCITY_HOST="https://teamcity.example.com"
export TEAMCITY_TOKEN="ey"

(back to top)

Usage

The following arguments are available (main.py):

--dir (required)

The directory of the git repository

--log

  • Default: "INFO"

The log level. Possible values are "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"

--game

  • Default: "Game"

The name of the game, will be prefixed to "ProjectDisplayedTitle"

--output

  • Default: "version.h"

The output file for the generated header file

--template

  • Default: "version.tpl"

The template file for the generated header file

Example:

#pragma once

#define VERSION_CHANGELIST "{{changelist}}"
#define VERSION_BRANCH "{{branch}}"
#define VERSION_VISIBILITY "{{visibility}}"
#define VERSION_SHORT "{{versionShort}}"
#define VERSION_FULL "{{version}}"
#define VERSION_TIME __DATE__ "/" __TIME__
#define VERSION_PUBLIC {{isPublic}}

#define VERSION_STRING "Version " VERSION_FULL " (" VERSION_TIME ") [" VERSION_VISIBILITY "] <" VERSION_BRANCH "/" VERSION_SHORT "> ChangeList: " VERSION_CHANGELIST

--default-game

  • Default: None

The DefaultGame.ini file that should be updated

--no-update-default-game

Do not update the DefaultGame.ini file

--crash-report-client

  • Default: "CrashReportClient.ini"

The CrashReportClient.ini file that should be updated

--no-update-crash-report-client

Do not update the CrashReportClient.ini file

The following arguments are available (TeamCity.py):

--host (required)

The host of the TeamCity server

--token (required)

The token for the TeamCity server

--project

The project to use

--buildtype

The build type to use

--tag

The tag to use

--artifact

The artifact to use

(back to top)

Roadmap

Since this project was developed for internal use, there are currently no plans to expand the functionality.

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. See LICENSE.txt for more information.

(back to top)

About

This project is a collection of internal tools developed in Python for working with Unreal Engine. It includes functionalities for retrieving version information from a Git repository, updating Unreal Engine configuration files, and handling template files.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published