Jump to content

How to Set Up an Automated Build Process and How to set up a DayZEpoch Dev Environment


Recommended Posts

What we are doing: Setting up an automated build process to compile the server and mission PBO on restart

Why: Ever needed to make changes to your server but had to wait for server restart?  Ever missed that window and had to wait another 3 - 4 hours till your next restart cycle? I hate that!

Requirements: PBOmanager, notepad++, firedaemon(optional) or knowledge of editing your batch scripts, a dev environemnt (you do have a dev environment don't you?), a dedicated server

Difficulty: Advanced

 

Ok guys, as stated before it is a huge pain in the ass to have to wait till your server goes down to push changes.  Why not automate it so that you can make your changes and be done with them?

 

So to start off you really should have a dev environment that mirrors your production environment.  I'm talking about a dev server here people.  Quick and dirty, just copy and paste your folder containing the Arma2OA install (you know the folder with @DayZ_Epoch_Server in it) to another directory.  Doesn't matter what the name is but you need to make changes here before you make them on your production server so you can verify that you didn't break anything.

 

 

Step 1: Install PBO manager if you have not.  you can get it here: http://www.armaholic.com/page.php?id=16369

Step 2: If you do not have unpacked folders of your PBO's living next to them in their proper directories, unpack your pbo's so that you have a folder with the same name in the same directory.  This is where you will make your changes.

Step 3: Create a batch script to run BEFORE your server starts.  This PBO will automatically pack up the folder into a PBO overwriting your old one.

 

Here is the content of my batch script "pbopack_dev.bat" (note that this is for the dev server, your path will not be the same"

 

 

"C:\Program Files\PBO Manager v.1.4 beta\PBOConsole.exe" -pack "D:\dayz\DEV_Epoch1\@DayZ_Epoch_Server\addons\dayz_server" "D:\dayz\DEV_Epoch1\@DayZ_Epoch_Server\addons\dayz_server.pbo"
"C:\Program Files\PBO Manager v.1.4 beta\PBOConsole.exe" -pack "D:\dayz\DEV_Epoch1\MPMissions\DayZ_Epoch_11.Chernarus" "D:\dayz\DEV_Epoch1\MPMissions\DayZ_Epoch_11.Chernarus.pbo"

 

 

Step 4: Integrate batch script into your current server restart method.  I use firedaemon, if you use a batch script, just make sure you run the previous batch before you start your server but after you have shut it down.  for firedaemon users, just add the batch script to the "pre-service programs".  Give it a nice 15 second timeout to ensure we didn't start the server too fast.

 

That's it.  Verify it works without breaking anything and you can implement this for your production servers.

 

 

Development and Deployment strategy:

 

Ok so I touched a little about this earlier but you MUST use a development environment.  Any programmer who has worked in a professional environment will know that you NEVER EVER EVER make changes to production code.  Firstly, its dangerous, secondly, it makes you look bad if you break a critical system because you were too lazy to test it properly.  Always make changes to your dev server first before you migrate those changes to the live prod environment!!!!!

 

Ideally,  you would want to have an exact mirror of your production server so that you can accurately verify your changes don't break something.

 

Here's how I do it.

 

Initial Setup:

1. Copy entire DayZ server directory to a new one (this only needs to be done once)

2. Backup your DayZ database and insert it as a new one (I use "DayzEpoch_DEV" for this)

3. Modify your hive.ini so it points to your dev database

4. Make changes on dev server and verify results.

 

After Setup:

1. Delete "@DayZ_Epoch_Server" and "mpmissions" directories from the DEV server folder.

2. Copy over "@DayZ_Epoch_Server" and "mpmissions" from your PROD server folder into the DEV server folder.

3. Make changes you need to the folders (no need to recompile as our script above does that for us)

4. Verify changes

 

Migrating changes from DEV to PROD on a Live server:

1. TEST YOUR CHANGES IN DEV

2. Navigate to your PROD server directory and delete the PBO's unpacked folders you wish to modify

3. Copy the unpacked folders from your DEV server to the PROD server

4. Wait for server restart to automatically recompile the folders into PBOs

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...