Workflow optimisation in unity engine
Sakharov, Vladimir (2019)
Sakharov, Vladimir
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019061717086
https://urn.fi/URN:NBN:fi:amk-2019061717086
Tiivistelmä
The commissioner of this thesis, Flatfish Games Ltd, is a gaming company that focuses on business-to-business contracts. The process of working on multiple projects for different customers needs a stable way of delivering the software to the customers for assesment
The purpose of this thesis was to implement an automated software delivery pipeline to make the development process more robust, manageable and configurable.
The pipeline consists of 4 parts: a Version Control System(VCS) hosted on the GitLab platform, an automated build system in the form of Unity Cloud Build(UCB), a web application written in JavaScript utilizing NodeJS framework hosted on the Heroku platform, and Visual Studio Appcenter distribution platform . The setup was conducted via configuring the services separately and setting up communication between them through HTTP requests.
The logic of the configuration was implemented in a way that instead of every step of the deployment process executed in the same platform with the service responsible for each step. The information was transferred from one service to another through an HTTP trigger.
The VCS was configured to increment the project version on each change to the files in the repository. After completing the file modification, the VCS transfers the public address for the files to UCB. After receiving the location of the files required for the build, the build system creates a new virtual environment, executes all the automated tests, publishes the new virtual environment to a publicly-accessible location and notifies the web server of its location. After receiving a notification containing the download link for the build package, the web server downloads it, uploads it to the Visual Studio Appcenter distribution platform and notifies the customer of the new version.
The time calculations concluded that the deployment system is implemented according to the needs of the company and it has been used in the production environment since January 2019. However, the implementation can be improved upon by setting up a local build environment and a proprietary distribution platform.
The purpose of this thesis was to implement an automated software delivery pipeline to make the development process more robust, manageable and configurable.
The pipeline consists of 4 parts: a Version Control System(VCS) hosted on the GitLab platform, an automated build system in the form of Unity Cloud Build(UCB), a web application written in JavaScript utilizing NodeJS framework hosted on the Heroku platform, and Visual Studio Appcenter distribution platform . The setup was conducted via configuring the services separately and setting up communication between them through HTTP requests.
The logic of the configuration was implemented in a way that instead of every step of the deployment process executed in the same platform with the service responsible for each step. The information was transferred from one service to another through an HTTP trigger.
The VCS was configured to increment the project version on each change to the files in the repository. After completing the file modification, the VCS transfers the public address for the files to UCB. After receiving the location of the files required for the build, the build system creates a new virtual environment, executes all the automated tests, publishes the new virtual environment to a publicly-accessible location and notifies the web server of its location. After receiving a notification containing the download link for the build package, the web server downloads it, uploads it to the Visual Studio Appcenter distribution platform and notifies the customer of the new version.
The time calculations concluded that the deployment system is implemented according to the needs of the company and it has been used in the production environment since January 2019. However, the implementation can be improved upon by setting up a local build environment and a proprietary distribution platform.