August25
🆕 Functional Changes (v31.1.1 → v31.2.0)
🚀 Major Feature: v3 Workflows & Enhanced Server Integration (Optional Project Workflows)
If you have provisioned sfp server, you can start utilizing these workflows for pushing workflow related data and events to sfp server.
SFP Server v3 Support
Review Environments Pool: Introduced v3 workflows with new server-based review environments pool
Release Definition Storage: Release definitions are now stored and tracked on the server for complete auditability
Server Publishing: v2 workflows updated with direct server publish commands
Environment Outputs: Workflows now provide release definitions and environment information as outputs for better integration
Issue Analyzer v2
Enhanced Analysis: Completely revamped issue analyzer with v2 capabilities
Smarter Detection: Improved pattern matching and issue categorization
Automated Timing: Issues now close automatically after 5 minutes of resolution
Better Reporting: More detailed issue reports with actionable insights
Apex Testing Improvements
Test Environment Support: Full Apex test support on dedicated test environments
Metadata Filtering: SFP environment list filtering with metadata support
Pool Matching: Fixed and improved pool matching for test execution
Daily Quality Tests: Resolved issues with daily quality testing workflows
📦 NPM & Artifact Management
NPM Authentication
Secure Artifact Fetching: Added NPM authentication to ensure reliable artifact retrieval
Private Registry Support: Full support for private NPM registries
Token Management: Secure handling of NPM tokens across workflows
🏗️ Infrastructure & Performance
Node.js 22 Upgrade
Platform Update: Upgraded all workflows from Node.js 18 to Node.js 22
Performance Gains: Significant performance improvements with newer runtime
Security Updates: Latest security patches and vulnerability fixes
Workflow Optimization
Faster Execution: Removed unnecessary checkout steps in v2 workflows
JSON Compacting: Optimized JSON output for GitHub Actions compatibility
Variable Management: Better handling of GitHub variables as workflow inputs
🔄 CI/CD Workflow Changes
Release-Please Workflow Enhancements
The release-please workflow now includes significant improvements for managing SFOPS deployments:
Key Changes from Previous Version:
Base Image Configuration: Now explicitly passes base image configuration parameters to sync-org workflow
base_image_tag
: Defaults to 'latest' but configurablebase_registry
: Configurable registry (defaults to ghcr.io)base_repo
: Configurable repository owner (defaults to flxbl-io)base_image_name
&base_lite_image_name
: Configurable image names for flexibility
Skip Docker Build Option: Added
skip_docker_build
flag to sync workflows without rebuilding Docker imagesGitHub Variables Support: All base configuration now supports GitHub variables with fallback defaults
Sync-Org Workflow Architecture
Complete redesign of organization synchronization workflow:
Migration from repository_dispatch to workflow_dispatch:
Direct Invocation: Can now be triggered directly from GitHub UI with clear parameter inputs
Descriptive Run Names: Shows target organization and correlation ID in workflow run title
Two Trigger Modes:
workflow_call: For internal reuse (from release-please or other workflows)
workflow_dispatch: For manual triggers with full parameter control
New Configuration Parameters:
# Base image configuration
base_image_tag: 'latest' or specific version
base_image_name: 'sfp-pro' or 'sfp-pro-rc'
base_lite_image_name: 'sfp-pro-lite' or 'sfp-pro-lite-rc'
base_registry: Custom registry support
base_repo: Custom repository owner
sfp_version: SFP version to use
skip_docker_build: Skip building, only sync
Workflow Dispatch Parameters (for manual triggers):
org_name
: Target organizationrepo_owner
: Repository ownerproject_repo
: Project repository namesfops_action_repo
: SFOPS actions repositorydashboard_repo
: Dashboard repositoryinstallation_token
: GitHub App installation tokensfp_server_url
: SFP server URL for trackingcorrelation_id
: Unique tracking IDskip_docker_build
: Optional flag to skip Docker builds
Sync-Single-Org Workflow
New simplified workflow for syncing a single organization:
Easy Manual Trigger: Simple UI-based trigger from GitHub Actions
Environment-based Configuration: Uses GitHub environment variables
Inherits Secrets: Automatically inherits all repository secrets
Configurable via Variables: Uses
vars.BASE_REGISTRY
,vars.BASE_REPO
, etc.
🔧 Bug Fixes & Improvements
Critical Fixes
Environment Variables: Resolved base variable configuration issues
Pool Matching: Fixed incorrect output in pool matching logic
Daily Testing: Resolved issues with daily quality testing workflows
Workflow Reliability
Action References: Updated and fixed action references in workflows
Container Images: Corrected container image references in static analysis
Repository Routing: Fixed incorrect routing in action repositories
Authentication Steps: Removed incorrect auth steps that caused failures
Performance Optimizations
Checkout Removal: Eliminated unnecessary checkouts for faster execution
JSON Formatting: Optimized JSON output for GitHub Actions
Variable Passing: Fixed variable passing between workflow stages
Environment Handling: Improved environment variable propagation
📋 How to Use the New CI/CD Workflows
Setting Up Organization Sync for Your SFOPS Fork
Prerequisites
Fork SFOPS repository to your GitHub organization
Configure GitHub Variables in your fork's settings
Set up required secrets
Configure GitHub Variables
Navigate to Settings → Secrets and variables → Actions → Variables:
BASE_REGISTRY=ghcr.io # Or your custom registry
BASE_REPO=flxbl-io # Or your organization
BASE_IMAGE_NAME=sfp-pro # Base SFP image name
BASE_LITE_IMAGE_NAME=sfp-pro-lite # Lite image name
ORGS=["org1","org2","org3"] # List of orgs to sync
Manual Sync Using GitHub UI
Go to Actions tab in your SFOPS fork
Select "Sync Single Organization" workflow
Click "Run workflow"
Enter parameters:
org_name
: Your target organization (must exist as GitHub environment)skip_docker_build
: Check to skip Docker build (useful for testing)
Click "Run workflow"
Automated Sync on Release
The release-please workflow automatically syncs to all configured organizations:
# Triggered automatically on:
# - Push to main branch
# - Manual workflow dispatch
# - When release-please creates a new release
Using v3 Workflows with SFP Server (Optional)
If you have SFP Server provisioned, enable v3 features:
Setup in Project Workflows
# .github/workflows/sfops-release-v3.yml
name: Release with SFP Server
uses: your-org/sfops-gh-actions/.github/workflows/release-v3.yml@main
with:
workflow_version: "v3"
use_server_pool: true
store_release_definitions: true
secrets:
SFP_SERVER_URL: ${{ secrets.SFP_SERVER_URL }}
SFP_SERVER_TOKEN: ${{ secrets.SFP_SERVER_TOKEN }}
Monitor via SFP Server
# View stored release definitions
sfp server releases list
# Get specific release details
sfp server releases get --id <release-id>
📋 Updating project workflows to use sfp-server based workfows
For Existing Users
1. Update Your Workflows
# Pull latest workflow definitions
git pull origin main
# Update your project workflows
cp .github/workflows/sfops-*.yml /path/to/your/project/.github/workflows/
2. Configure GitHub Variables
# Set required variables in GitHub UI or CLI
gh variable set BASE_IMAGE_TAG --body "v32.0.0"
gh variable set NPM_REGISTRY --body "https://npm.pkg.github.com"
gh variable set SFP_SERVER_URL --body "https://sfp.myorg.com"
3. Update Secrets
# Add new required secrets
gh secret set SFP_SERVER_TOKEN
3
Last updated