sfops
sfpSlackGithub
  • Overview
  • Features
  • Environments
    • Creating an Environment
    • Authenticating to Environments
    • Review Environments
      • Configuring Review Sandboxes
      • Creation and Allocation of Review Sandboxes
  • Project Workflows
    • sfops - Execute Issue Ops
    • sfops - On Pull Request Comments
    • sfops - Close Issues
    • sfops - Execute Every 30 mins
    • sfops - Daily Job Executor
    • sfops - Review Sandbox - Creator
    • sfops - On Push to Branch
    • sfops - Execute Releases to any env
    • sfops - Execute Releases
  • IssueOps
    • Access
      • Request elevated previlege in production
    • Release
      • Release a Domain
      • Hotfix Workflow
  • Changelog
    • November24
    • January25
  • May25
  • DevCentral
    • Customising Menu
    • Extending using Custom Forms and Issue Ops Actions
  • self managed instances
    • Setup for self managed instances
      • 1. Create repositories
      • 2. Create a GitHub App
      • 3. Setting up sfops repository
      • 4. Trigger the workflows
      • 5. Setting up project repository
      • 6. Fetching upstream changes
        • 6.1 Manual Process for Updating sfops from Upstream
    • Update Instructions
      • Updating to v29.0.0
      • Updating to v30.3.1 and above
    • Workflow details
      • Sync Upstream Repository and Create Pull Request
  • Legal
    • Terms of Service for sfops
Powered by GitBook
On this page
  • 🆕 Functional Changes (v31.0.3 → v31.1.1)
  • 🔄 Version Compatibility
  • 🏗️ Major Architecture Change: No More Rebuilding sfp!
  • 🚨 Action Required for Forked Repositories
  • 1. Configure GitHub Variables
  • 2. Configure Registry Credentials
  • 3. Update Project Workflows (Important!)
  • 4. Build Your Own Base Images (Optional)
  • 💡 Benefits of the New Architecture
  • 📋 Quick Migration Checklist
  • 🔍 Troubleshooting
  • 📚 Further Reading

May25

🆕 Functional Changes (v31.0.3 → v31.1.1)

DevCentral Dashboard Enhancement

  • SFP Server Integration: DevCentral dashboards now support SFP server-based front door URL functionality

  • Review environments, sandboxes, and scratch orgs pages updated to work with SFP server

  • Improved URL handling for better environment access

Major PR Validation Enhancement

  • GitHub Checks API Integration: PR validation results are now reported through GitHub's native Checks API instead of comments

  • No more cluttered PR comments with validation results

  • Cleaner PR interface with validation status shown in GitHub's checks panel

  • Better integration with GitHub's merge requirements and branch protection rules

Workflow Improvements

  • SFP Server Support: All workflows now pass SFP server URL and token through the pipeline

  • New Release Configuration: Added "thorough" as a release configuration option

  • Better Variable Management: Fixed incorrect variables being passed between workflows

  • Environment variables now properly propagate across all job stages

Removed Features

  • Deprecated Actions: Removed unused actions (checkActions, create-or-update-project-card)

  • fetchAllReleaseNames: Moved to sfp-pro for better maintainability

  • Branch Deploy: Completely removed from all workflows (see project workflow updates above)

Bug Fixes

  • Fixed filename changes for sfp-pro compatibility

  • Corrected variable passing in project workflows

  • Improved environment variable handling across jobs

🔄 Version Compatibility

  • SFOPS v31.1.x requires sfp-pro base images v31.0.0 or later

  • Using mismatched versions may cause unexpected behavior

  • Always test with your specific base image versions

🏗️ Major Architecture Change: No More Rebuilding sfp!

Starting with v31.1.0, SFOPS fundamentally changed how Docker images are built. If you fork sfops, you no longer need to rebuild the entire sfp. This allows one to execute completely isolated not using the flxbl's ghcr regsitry for flxbl managed instances

What Changed

Before v31.1.0:

  • Users had to rebuild the entire sfp toolchain when forking SFOPS

  • Complex dependency management across multiple tools

  • Maintenance burden of keeping sfp versions in sync

  • Risk of version conflicts and build failures

After v31.1.0:

  • SFOPS now uses pre-built sfp base images

  • sfops extends sfp-pro base image (just adds GitHub CLI)

  • sfops-lite extends sfp-pro-lite base image

  • No more rebuilding sfp - just use the official images

  • Clean separation: sfp team maintains core tools, SFOPS adds orchestration

New in v31.1.1:

  • Base image versions are now configurable via GitHub variables

  • No more hardcoded "latest" tags - you control the versions

🚨 Action Required for Forked Repositories

If you maintain a fork of SFOPS and build your own Docker images, you must update your GitHub configuration:

1. Configure GitHub Variables

In your GitHub fork, navigate to Settings → Secrets and variables → Actions → Variables

Add these repository variables:

Variable Name
Required Value
Description

BASE_REGISTRY

source.flxbl.io

Registry where sfp base images are hosted

BASE_REPO

sfops

Repository namespace

BASE_IMAGE_TAG

v31.1.0

Specific version (don't uselatest)

2. Configure Registry Credentials

The sfp base images are hosted on source.flxbl.io. You need to configure credentials in GitHub:

  1. In your GitHub fork, go to Settings → Secrets and variables → Actions → Secrets

  2. Add these secrets:

    • BASE_REGISTRY_USERNAME: Your source.flxbl.io username

    • BASE_REGISTRY_TOKEN: Your source.flxbl.io access token

To get your source.flxbl.io token:

  • Log into source.flxbl.io → Settings → Applications → Generate New Token

  • Grant package registry read permissions

  • Copy the token to use in GitHub

3. Update Project Workflows (Important!)

If your Salesforce projects use SFOPS workflows, you need to update them:

What Changed

  • The sfops-push-to-branch.yml workflow was removed (branch-deploy deprecated)

  • Several reusable workflows were updated to remove branch-deploy dependencies

How to Update

  1. Navigate to your Salesforce project repository (not your SFOPS fork)

  2. Check .github/workflows/ for these SFOPS workflows:

    • sfops-push-to-branch.yml - DELETE this file

    • Other sfops-*.yml files - UPDATE to latest versions

  3. Copy the latest workflow files from sfops-gh-actions/project-workflows/

  4. Commit the updated workflows to your project

Note: This is separate from updating your SFOPS fork - this is about updating the workflows in your actual Salesforce projects that consume SFOPS.

4. Build Your Own Base Images (Optional)

If you need custom base images:

  1. Fork the sfp-pro repository

  2. Build and publish your custom sfp-pro images

  3. Update your SFOPS fork to use your custom base images

💡 Benefits of the New Architecture

Faster CI/CD

  • Docker builds are 3-5x faster

  • Base layers are cached and reused

  • Less bandwidth usage

Better Version Control

  • Pin specific base image versions for stability

  • Test new versions before rolling out

  • Consistent builds across teams

Easier Maintenance

  • No more rebuilding sfp when you just need SFOPS changes

  • sfp updates are handled by the Flxbl team

  • Your fork only needs to track SFOPS-specific customizations

  • Cleaner separation between tooling (sfp) and orchestration (SFOPS)

📋 Quick Migration Checklist

For Your SFOPS Fork

  1. Get latest code

  2. Configure GitHub Variables (in your SFOPS fork)

  3. Configure GitHub Secrets (in your SFOPS fork)

  4. Test Docker Build

For Your Salesforce Projects

  1. Update project workflows

  2. Test updated workflows

🔍 Troubleshooting

Common Issues

Build fails with "manifest unknown" error

  • Check that your BASE_REGISTRY and BASE_REPO values are correct

  • Verify the base image exists at the specified location

  • Ensure your access token has read permissions

Authentication errors

  • Ensure your source.flxbl.io token has package read permissions

  • Token might be expired - generate a new one at source.flxbl.io

  • Username must match your source.flxbl.io login username

  • The token must be configured in your GitHub fork's secrets

Wrong base image version

  • Clear your Docker cache: docker system prune -a

  • Explicitly set BASE_IMAGE_TAG instead of using latest

📚 Further Reading

  • Source Repository

  • Docker Build Workflow

  • Base Image Configuration Documentation


Need help? Reach out to your dedicated support channel in Flxbl's Slack workspace.

Security concerns? Audit the sfp source code at source.flxbl.io to understand what's included in the base images.

PreviousJanuary25NextCustomising Menu

Last updated 11 days ago