{"id":14984643,"url":"https://github.com/skymapgames/jenkins-ue4","last_synced_at":"2025-06-13T13:04:17.807Z","repository":{"id":37390860,"uuid":"104934775","full_name":"skymapgames/jenkins-ue4","owner":"skymapgames","description":"Automated Unreal Engine 4 Project Builds","archived":false,"fork":false,"pushed_at":"2017-09-29T19:25:57.000Z","size":3,"stargazers_count":277,"open_issues_count":0,"forks_count":79,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-10T01:09:26.690Z","etag":null,"topics":["automation","build-automation","jenkins","jenkins-ci","slack","tutorial","unreal-engine-4"],"latest_commit_sha":null,"homepage":null,"language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skymapgames.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-26T20:32:27.000Z","updated_at":"2025-01-21T15:10:48.000Z","dependencies_parsed_at":"2022-07-21T09:02:25.841Z","dependency_job_id":null,"html_url":"https://github.com/skymapgames/jenkins-ue4","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skymapgames%2Fjenkins-ue4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skymapgames%2Fjenkins-ue4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skymapgames%2Fjenkins-ue4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skymapgames%2Fjenkins-ue4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skymapgames","download_url":"https://codeload.github.com/skymapgames/jenkins-ue4/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137886,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","build-automation","jenkins","jenkins-ci","slack","tutorial","unreal-engine-4"],"created_at":"2024-09-24T14:09:27.326Z","updated_at":"2025-04-10T01:09:33.473Z","avatar_url":"https://github.com/skymapgames.png","language":"Batchfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jenkins CI Automation for Unreal Engine 4 Projects\n\nThis tutorial and repository provides documentation and resources on how to configure a Jenkins CI installation to build and compile an Unreal Engine 4 project.\n\nCreated by [Zack Devine](https://zdevine.me) for [Skymap Games](https://skymapgames.com).\n\n---\n\n### Prerequisites\n\n**Before you begin:** This documentation is solely meant for Jenkins running on Windows servers and desktops. This *may* also work on GNU/Linux build servers, however the included build scripts have only been tested for Windows installations.\n\nTo get started, please first download and install [Jenkins](https://jenkins.io/download/) on the computer you wish to use as a build server. ([Jenkins Installation Docs](https://jenkins.io/doc/pipeline/tour/getting-started/#getting-started-with-the-guided-tour))\n\nClone (or [download](https://github.com/skymapgames/jenkins-ue4/archive/master.zip)) this repository to your CI server to access the required build files for the final steps of the tutorial.\n\nYou will also need to download [cURL](http://www.confusedbycode.com/curl/) (only if posting notifications to Slack), Unreal Engine 4, as well as install MSBuild v14.0.\n\n---\n\n### Step 1: Create a new Jenkins Project\n\nThis first step is pretty straightforward. Once Jenkins is configured, start by creating a new Freestyle project.\n\n#### General\n\nUnder **General \u003e Advanced** check **Use custom workspace** and put the directory on the root of your drive, to prevent issues with long filenames during the build. Something like `C:\\Source\\\u003cproject name\u003e` or similar should do the job.\n\n#### Source Code Management\n\nSet up your source control repository as normal.\n\n#### Build Triggers\n\nFor our configuration, we poll the SCM every 3 minutes for changes, and build only if a certain keyword is present in the commit message. To do so, enter `H/3 * * * *` within the **Schedule** textbox. To trigger on commit messages, scroll back up to **Source Code Management**, click **Advanced**, and under **Excluded Commit Messages** enter `^((?!KEYWORD).)*$`, replacing `KEYWORD` with your own keyword to check for.\n\n---\n\n### Step 2: Configure Build Scripts\n\nLocate the directory where you downloaded the build scripts to. If you plan on posting to a [Slack](https://slack.com) channel during the build process, you will need to configure an incomming webhook integration, and replace `WEBHOOK_URL` with the URL of the integration in `PostToSlack.bat`.\n\nIn each of the build scripts, make sure to replace `PROJECT_NAME` with the name of your project.\n\n---\n\n### Step 3: Add Build Steps to your Jenkins Project\nFinally, add the build commands to Jenkins. At this point, you should have the build scripts somewhere on your server. Take note of the directory they reside in. For our setup, we post to a [Slack](https://slack.com) channel during each step of the build. If you would also like to do this, make sure to include the `PostToSlack.bat` files during each step, as laid out below:\n\nMake sure to replace `C:\\path\\to\\scripts\\` with the actual path of your build scripts!\n\n###### Build Step 1\n```batch\ncall C:\\path\\to\\scripts\\PostToSlack.bat \":heavy_check_mark: Starting %JOB_NAME% Build -- Revision %SVN_REVISION%\"\n\"C:\\path\\to\\scripts\\Step1_StartBuild.bat\"\n```\n###### Build Step 2\n```batch\ncall C:\\path\\to\\scripts\\PostToSlack.bat \":gear: Compiling game scripts...\"\n\"C:\\path\\to\\scripts\\Step2_CompileScripts.bat\"\n```\n###### Build Step 3\n```batch\ncall C:\\path\\to\\scripts\\PostToSlack.bat \":hammer: Building project files...\"\n\"C:\\path\\to\\scripts\\Step3_BuildFiles.bat\"\n```\n###### Build Step 4\n```batch\ncall C:\\path\\to\\scripts\\PostToSlack.bat \":fire: Cooking project...\"\n\"C:\\path\\to\\scripts\\Step4_CookProject.bat\"\n```\n###### Build Step 5 (Optional - Used to archive UE4 build)\n```batch\ncall C:\\path\\to\\scripts\\PostToSlack.bat \":package: Archiving build...\"\nC:\\path\\to\\scripts\\Step5_Archive.bat \"%SVN_REVISION%\"\n```\n###### Build Step 6 (Optional - Notifies in Slack when project is complete)\n```batch\nC:\\path\\to\\scripts\\PostToSlack.bat \":tada: Done!\"\n```\n\n---\n\n...and that should be it! Feel free to run a test build to see if everything builds and compiles correctly. The first build will take longer than normal, as Jenkins has to download all of the files from the repository specified.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskymapgames%2Fjenkins-ue4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskymapgames%2Fjenkins-ue4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskymapgames%2Fjenkins-ue4/lists"}