Match Pool

Learn how to dynamically match pool assignment rules for intelligent environment selection in PR validation and deployment workflows

The matchPool action provides dynamic pool selection based on configured assignment rules in sfp server. It enables sophisticated environment routing where different branches or domains can be assigned to different scratch org or sandbox pools.

Overview

In complex Salesforce development environments, you may need different review environments for different scenarios - hotfix branches might need a dedicated pool, while feature branches use a shared pool. The match pool action provides:

  • Rule-based matching using patterns configured in sfp server

  • Branch and domain awareness for precise environment selection

  • Fallback support when no rules match

  • Pool type detection distinguishing scratch orgs from sandboxes

This makes it perfect for:

  • Dynamic PR validation environment assignment

  • Multi-tenant review environment strategies

  • Branch-specific pool routing (hotfix vs feature)

  • Domain-specific environment allocation

  • Cost optimization through intelligent pool selection

How It Works

The action queries sfp server's review environment rules API to find the best matching pool:

Prerequisites

Before using this action:

  1. sfp server is configured with review environment rules:

    • SFP_SERVER_URL as a variable

    • SFP_SERVER_TOKEN as a secret

  2. Pool assignment rules exist in sfp server - Rules define which pools to use for which branch/domain combinations

  3. Your workflow uses the sfops Docker image:

Referencing the Action

The matchPool action is located in your sfops repository:

Basic Usage

Simple Pool Matching

Match a pool for PR validation:

With Fallback Pool

Provide a default pool when no rules match:

Dynamic Domain Matching

Match pools for different domains in a matrix build:

Input Reference

Input
Required
Default
Description

repository

Yes

-

Repository identifier (owner/repo)

branch

Yes

-

Branch to match against rules

domain

Yes

-

Domain to match against rules

fallback-pool

No

-

Pool to use if no rules match

sfp-server-url

Yes

-

URL to sfp server instance

sfp-server-token

Yes

-

Authentication token for sfp server

sfp-cli-version

No

latest

Version of sfp CLI to use

Output Reference

Output
Description
Example

pool-tag

The matched or fallback pool tag

hotfix-pool, feature-pool

pool-type

Type of pool

SANDBOX or SCRATCH_ORG

matched

Whether a rule matched

true or false

match-result

Full match result as JSON

{"matched":true,"poolTag":...}

Understanding Pool Assignment Rules

Pool assignment rules in sfp server define patterns for matching branches and domains to pools. Rules are evaluated in priority order.

Rule Structure

Rules typically include:

  • Branch pattern: Regex or glob pattern matching branch names

  • Domain pattern: Regex or glob pattern matching domain names

  • Pool tag: The pool to assign when rule matches

  • Pool type: SANDBOX or SCRATCH_ORG

  • Priority: Order of evaluation (higher priority wins)

Example Rules

With these rules:

  • hotfix/urgent-fix + any domain → hotfix-sandbox-pool

  • release/v2.0 + core domain → release-core-pool

  • feature/new-feature + sales domain → default-scratch-pool

Common Use Cases

Hotfix Priority Routing

Route hotfix branches to dedicated pools:

Domain-Specific Environments

Use different pools for different domains:

Conditional Workflow Based on Pool Type

Adjust workflow based on whether pool is sandbox or scratch org:

Full Match Result Processing

Access the complete match result for advanced scenarios:

Best Practices

Always Provide Fallback Pools

Ensure workflows don't fail when no rules match:

Use Descriptive Pool Tags

Configure pools with meaningful names:

Log Pool Assignments

Add visibility into pool selection for debugging:

Troubleshooting

No Match Found

If matching fails without a fallback:

  1. Verify rules exist in sfp server for the branch/domain combination

  2. Check branch name matches rule patterns (case-sensitive)

  3. Ensure domain name is correct

  4. Add a fallback pool for safety

Wrong Pool Selected

If unexpected pool is assigned:

  1. Review rule priorities in sfp server

  2. Check for overlapping patterns

  3. Verify branch and domain values being passed

  4. Review match-result output for debugging

Authentication Errors

If sfp server connection fails:

  1. Verify SFP_SERVER_URL is correct

  2. Check SFP_SERVER_TOKEN is valid and not expired

  3. Ensure the token has permissions for review-envs API

Last updated