Skip to content

Demo project using utPLSQL v3 with Travis as a CI server and SonarCloud for code analysis, coverage and test results

License

Notifications You must be signed in to change notification settings

utPLSQL/utPLSQL-demo-project

Repository files navigation

Build Quality Gate Status

Main utPLSQL Project Build: Build Status

utPLSQL build using Liquibase Build Status

utPLSQL build using RedgateFlyway Build Status

CI/CD and Unit Testing for Oracle PLSQL

Demo project using utPLSQL, Travis and SonarCloud for continuous integration of PLSQL and SQL code.

This is a demo project using utPLSQL v3 for unit testing of Oracle PLSQL code. The project is also taking benefit of Continuous Integration with Travis CI server as well as static code analysis, code coverage and test results reporting using SonarCloud.

With every commit made to the github repository, a build job is executed using Travis CI.

The build process consists of following steps:

Demo project using utPLSQL, Azure Devops and SQLCL Liquibase / Redgate Flyway for continuous integration of PLSQL and SQL code.

This is a demo project using utPLSQL v3 for unit testing of Oracle PLSQL code. The project is also taking benefit of Continuous Integration with Azure Devops server as well as static code analysis, code coverage and test results reporting using SonarCloud.

With every commit made to the github repository, a pipeline is executed using AzureDevops CI. The pipeline is split into stages. Each stage is build from one job which is split into set of smaller tasks responsible for the whole build.

In our pipeline we used following setup for stages:

  • Build Database: During this stage we are deploying our code using SQLCL Liquibase. This ensures that syntax of command is correct as well as integrity of changes with others Tests are deployed to that database and executed. In our scenario we are forcing the failure into success using utplsqlcli option --failure-exit-code=0. Code coverage and test results are published and immutable artifact is created that will be propagated to next stages of deployment.
    • Build Stage consists of following steps:
      • Download binaries for utplsqlcli and sqlcl (this step is optional, its possible that in self hosted agent this will be part of agent etc.)
      • Provision a database from docker (this steps is optional and depends on your setup of databases, for example Delphix provisioning)
      • Clone utPLSQL repository and install utPLSQL sources into database
      • Create test user and install test packages
      • Execute Liquibase / Flyway commands to update database
      • Execute utPLSQL tests
      • Publish test results to pipeline
      • Execute SonarCloud analysis and publish results
      • Prepare artifact for publish to next stage

At the end of build stage we will produce immutable artifact that has been tested and can be passed downstream to deployment jobs.

  • Deploy Code to Database: During this stage we are using an artifact created during build stage. We will download it and deploy to the databases ( e.g. DEV,PRD, UAT, NFT etc.), during this stage running tests depends on project setup and the stage ( we will not be deploying tests to PRD but possible to DEV yes)
    • Deploy Stage consists of following steps:
      • Download binaries for utplsqlcli and sqlcl (this step is optional, its possible that in self hosted agent this will be part of agent etc.)
      • Provision a database from docker ( this step most likely you will not run as these databases will exists already)
      • Create user to deploy code to ( this step most likely you will not run as the user will exists already and we will update database)
      • Execute Liquibase / Flyway commands to update database

About

Demo project using utPLSQL v3 with Travis as a CI server and SonarCloud for code analysis, coverage and test results

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •