Managing environments

Environments

If your configuration file contains a key called "Environment", AppHarbor will replace its value:

Example:

<appSettings>
   <add key="Environment" value="Debug"/>
</appSettings>

When you push you code, we'll replace the value "Debug" depending on the current environment: While running unit tests "Environment" is set to "Test" and when your application is deployed and is running on a server, "Environment" equals "Release".

Use this key to handle environment specific settings in your code.

Configuration Variables

confvars.png

You can set configuration variables for your application. When you add a configuration variable, we'll look for the key in any config file's AppSettings section and replace or add the value with the one defined on AppHarbor when your application is released.

Connectionstring replacement for Sequelizer: If you want connectionstrings from the Sequelizer add-on inserted into the connectionStrings element of your application configuraition (and not just not appSettings), please see the Using Sequelizer guide.

Configuration variables are a great to use one set of values when running your app locally and another set of values when your app is deployed to AppHarbor. It's also a great way to keep sensitive login information out of source control.

Configuration transformation

Configuration file transformation is supported on all .config files that have a corresponding .release.config file. We'll run the configuration file transformation before deploying your code. We have built a transformation tester to help you debug your transforms.

Deploy from non-default branch

By default, AppHarbor will build the tips of all branches pushed. By default, only commits from the master branch (i.e. the one named default, master or trunk) is deployed. If you want AppHarbor to deploy from a branch with a different name (eg. production), you can specify a tracking branch in your application settings on the AppHarbor dashboard.

OutDir

When building your code, AppHarbor will override the value of the OutDir macro. This may cause problems if you have build events that rely on this value.

Commit Id

The build's commit id is injected into appSettings just like the configuration variables mentioned above. The key is appharbor.commit_id and the value is the commit id. This can be useful for invalidating cache etc.

Worker name

The name of a worker is injected into appSettings when your app is deployed. They key is appharbor.worker_name and contains values such as web.1, worker.1, web.2 or similar. This value also reflects the values you see in the build log when deploying an application.