If you have a need for a more controlled and clean deployment of a project from one Matillion instance to another, you may find the attached valuable. I thought I would share what I wrote to facilitate our deployments to our production Matillion instance from our Development/Test Matillion instance.
Our particular use case was that our Dev/Test Matillion instance has no access to our Production Matillion instance. This ensures there is no crossover of data or manipulation of data between Dev/Test and Production. We also wanted to make sure that what landed on our Production Matillion instance was solid and very clean.
We implemented a project version standard where all schedules only point to that version, which is considered our “release” for the Matillion instance the project resides on. By specifying the project group, project, environment and version in the export, we can control exactly what ends up in the export file that will be used to import into our production instance. As an example, if you have several versions and environments in a project but you only want to deploy your "release" project version and "production" environment along with any schedules that line up with those, this becomes possible. Once imported you ended up with a very clean project that includes all the dependencies like passwords, schedules, shared jobs, and API profiles for that project version and environment.
This was purpose built for our use case but can easily be modified for your own use case. Please feel free to modify it to your liking.
If you use Visual Studio Code, I have included the launch.json file with 2 debugger launch profiles. One for the export and another for the import. You can change the arguments to fit your server names and project need and then run it. I have also included a short readme.txt file that explains a few things before getting started.
This is free for anyone to use and I get nothing from it other than being able to share with the community. I hope this helps others.