Organizing configurations and custom code using Git

180 views 4

This article describes how you should organize your configurations and customized code. We recommend that you use the proposed structure and Git to keep track of changes that occur over time.

Before you begin

Create your Git repository on a server on your network that Atomia can access. If you don’t want to do this we can create one for you on our GitHub account. However, we do not recommend this since sensitive data will be stored in the repository.

You need to have basic knowledge of how to use Git. There are a lot of great tutorials on Git and GitHub online, e.g. the following:

What should be in the repository?

All configurations and customizations should be stored in one location. This makes the support and maintenance of your platform a lot easier for both us and you. Below is a list of the things we want you to store in the repository. Feel free to add anything else that is relevant to your Atomia platform as well.

  • Customized code
  • Transformation files
  • Changes made to the theme
  • Programs that communicate with any of the Atomia APIs

Recommended directory structure

We recommend that you use the following structure.

README.md in the root of the repository

In the root of the repository there should be a file called README.md. This file should contain a brief description of any customizations that might exist, external tools that speaks with the Atomia APIs, or anything else that might be good to know about your Atomia platform.

README.md in all directories with customized code

There should also be one README.md for each directory that contains customized code. For example, if you have created a script that creates subscriptions via the Billing API, then there should be a README.md that explains what the script does and what the purpose of the script is.

Separate directories for all environments

We would also like to have one directory for each type of environment that you have. With a full scale installation of Atomia, there should be a test, an acceptance and a production directory. See the example below for a more detailed explanation of what should be kept in the different directories.

Transformation files structure

The transformation files should be kept in the same structure as they are stored on your file system. For example, the transformation files stored at C:\Program Files (x86)\Atomia\AutomationServer\Common\Transformation Files from your test environment should be placed in a directory structure looking like this: Test/AutomationServer/Common/Transformation Files.

Example directories and files

In this example the customer has a test, an acceptance, and a production environment. The customer also has a script called create_subscriptions.sh that creates subscriptions. Our example customer also has a customized version of the Atomia Order Website, and last but not least their transformation files. In this example, there is only one transformation file for the Resources.xml in the Automation Server. But you should include all transformation files that you have in your Atomia platform for each environment (test, acceptance, and production).

Here are the directories and files for the above given example:

  • README.md
  • AtomiaStore
  • AtomiaStore/README.md
  • CreateSubscriptions
  • CreateSubscriptions/README.md
  • CreateSubscriptions/create_subscriptions.sh
  • Production
  • Production/AutomationServer
  • Production/AutomationServer/Common
  • Production/AutomationServer/Common/Transformation Files
  • Production/AutomationServer/Common/Transformation Files/Resources.SomeChanges.xml
  • Acceptance
  • Acceptance/AutomationServer
  • Acceptance/AutomationServer/Common
  • Acceptance/AutomationServer/Common/Transformation Files
  • Acceptance/AutomationServer/Common/Transformation Files/Resources.SomeChanges.xml
  • Test
  • Test/AutomationServer
  • Test/AutomationServer/Common
  • Test/AutomationServer/Common/Transformation Files
  • Test/AutomationServer/Common/Transformation Files/Resources.SomeChanges.xml

Was this helpful?