Hi,
I am in the process of migrating a large Oracle PL/SQL application to use a CI/CD pipeline, built using SQLcl project for database changes. The Git repository contains both database and Java code, which historically has been maintained in separate directories (or separate modules as they appear in the IDE). Changes committed against the Git feature branch therefore contain code changes across the database and application server.
We plan to move the database source code from its existing separate directory into the /src directory, as we note that SQLcl project requires its directories to exist in the root of the repository. As I understand it, we are therefore limited to generating a single application database artifact from a given Git repository.
This leads me to my question about how best to manage unit test code, which would normally co-exist with the application code in the repository.
Ideally, we would like to maintain the utPLSQL unit test code for the database changes in the same Git repository. However, we don't want the utPLSQL code to be packaged up as part of the application build - this code should not be released to our UAT or Production databases. As part of a CI/CD pipeline, we would like the utPLSQL unit tests to be packaged up separately and deployed / tested (along with the application changes) in a database environment for automated unit testing.
Is this a use case that has been considered for SQLcl project and is there a view on how to manage such database unit test code?
At the moment, I'm considering setting up a separate Git repository for the utPLSQL unit test code but wondered if there is a better approach.
Thanks,
Mark