GitLab Pipelines for Customer Projects

This guide is for partners and customers who want to set up their GitLab CI/CD pipeline for automated testing and deployment of Pricefx projects.

Prerequisites

  • Create a user account pfx.deploy in the target partitions (QA, PROD). Assign General Admin privileges in each partition where you plan to deploy. Set a password and keep it safe; you will set it later as the PFX_PASS CI variable in GitLab.

The password must be at least 14 characters long, have at least 1 digit, and have at least 1 capital letter.

  • pom.xml must be present in the project root folder. If not, generate it in Studio by right-clicking the project and navigating to Pricefx > Create 'pom.xml'.

  • Ensure you have sufficient permissions in GitLab (Maintainerat least) to manage the repository settings.

Step-by-step tutorial in GitLab

If are an SA or a team lead and you do not have GitLab Maintainer role, contact a GitLab admin.

As GitLab Maintainer or Owner:

  1. Generate the pipeline file in Studio. Right-click the project root and navigate to Pricefx > Create '.gitlab-ci.yml'. Map each source branch to its target environment (cluster URL and partition are derived from the mapping). Commit and push the generated file to your GitLab repository.

  2. Configure CI/CD variables. Navigate to Settings > CI/CD > Variables and add:

    1. PFX_USER — set to pfx.deploy.

    2. PFX_PASS — set to the deployment user's password. Select Protected and Masked.

You're all set. From now on:

  • A merge request runs Verify (Maven unit tests) and Analyze (pfxprobe code analysis).

  • A push to a mapped branch runs Verify, Analyze, and Deploy (pfxpackage tool) to the target partition.

Additional permissions for pfx.deploy: Depending on what objects need to be deployed (PP tables, workflow, Datamart, etc.), the pfx.deploy account may need additional user roles beyond General Admin — specifically the corresponding administer role for each object type being deployed.

See also: https://docs.gitlab.com/ee/ci/yaml/