FlexDeploy is a DevOps platform for CI/CD with out of the box support Oracle APEX build and deploy automation. Oracle Application Express (APEX) is a common low code development framework, which is also used to develop extensions for Oracle E-Business Suite.
This FlexDeploy Loves APEX Blog Series will help you understand what makes FlexDeploy a perfect choice to implement DevOps and Continuous Delivery with Oracle APEX. Here is a summary of FlexDeploy Loves APEX Blog Series:
- FlexDeploy Loves APEX: Source Application from SCM (Git, SVN, etc.)
- FlexDeploy Loves APEX: Source Application from Development Environment
- FlexDeploy Loves APEX: Continuous Integration for APEX
- FlexDeploy Loves APEX: Deploy Individual Application Pages
- FlexDeploy Loves APEX: Deploy the Applications and Supporting Objects
In this blog article, we will discuss using FlexDeploy to automatically promote an APEX application from the source control repository to various environments. Oracle recommends the use of a source control repository such as Git, SVN, or TFS for storing APEX application files, see APEX life cycle management whitepaper.
Export and Save files in SCM
In this approach, we will source the APEX application from SCM. APEX development happens in a browser against the development environment, so developers need to export and commit files to SCM. There are few options for such export.
- Use Application Builder to export applications
- Use Oracle APEXExport utility to export and possibly split application file into many files for easier management.
- Use FlexDeploy operation to automate export.
- Other commercial or free tools.
FlexDeploy supports exporting both full application and split files.
- If you export the application as a single file, you will be deploying the entire application as a unit. This option is set up as a full deployment project in FlexDeploy.
- If you exported an application into many smaller files, you can either deploy an entire application or specific pages/components. This option is set up as a partial deployment project in FlexDeploy.
Configuration Steps
FlexDeploy configurations (step #3 below) is a one-time activity, and it does not require any scripting. We recommend the use of FlexDeploy Blueprints for faster setup.
- Export and commit application files to SCM
- Install SQLcl on FlexDeploy server
- Configure FlexDeploy (workflows, topology, project, etc.)
We will use GitHub as SCM with a split format application with one application per folder.
FlexDeploy Blueprints will create the necessary workflows and topology automatically.
Once you answer those questions, fill in the source control section below.
Fill in your apex server details and click confirm.
Double check your details and click save. A summary of the related objects that were created or updated is shown. Click Open Project.
Discovering Files and Creating Packages
Go to the File Catalog.
Click Discover, and then Show new Files.
Create a new package which will have a page or other contents that you want to deploy.
Add one or more files.
Build and Deploy
Now we are ready to execute build and deploy. Build is started either 1) Manually, 2) REST API, 3) CI Triggers, 4) Release and Pipelines. We recommend Release and Pipelines usage as that allows you to deploy your APEX application with other supporting objects such as packages, tables, sequences, and other database objects.
After the successful execution of build workflow, FlexDeploy will store artifacts in its artifact repository with a unique version. You can deploy a specific version to any environment.
You can request a deployment manually, as shown below, or you can use other automated approaches to deploy a specific version. Note that approval, schedule, notifications are all available as they are part of the FlexDeploy platform.
You can also use dashboards and reports to review history and state of deployed applications. Additionally, you can use test automation to run automated tests against a deployed application. Test results can be further used to decide if the version should be promoted to the next environment or not. All these are options available for any project in FlexDeploy.
You just saw how you could configure an APEX project in FlexDeploy, and automatically promote an APEX application from Source Control Management to various environments.
In my next post, I’ll show how you can source the application from a development environment.