4. Trigger the workflows
After setting up your environments and variables, you can deploy sfops using this workflow:
Deploy to All Environments
Release and Deploy to Environments in ORGS
Workflow: release-please
How to trigger:
- Go to Actions → "release-please" from the left sidebar
- Click "Run workflow" for manual trigger
- Or it runs automatically on pushes to main branch
This workflow:
- Creates releases using release-please (when changes are detected)
- For each environment in
ORGSarray:- Builds sfops and sfops-lite Docker images from base sfp-pro images
- Uses
BASE_REGISTRY,BASE_REPO,BASE_IMAGE_NAME, andBASE_LITE_IMAGE_NAMEvariables to pull the base images - Tags images with version number (e.g.,
31.2.0) andlatest - Pushes built images to ghcr.io
- Syncs sfops-gh-actions and sfops-dashboard to the environment
Important for Forked Repositories: If you have forked sfp-pro and are using custom image names, ensure you set both:
BASE_IMAGE_NAME: For the main sfops image (defaults tosfp-pro)BASE_LITE_IMAGE_NAME: For the lite sfops image (defaults tosfp-pro-lite)
These variables are crucial for clients who have forked sfp-pro with different image names.
Note: Add all your environments (production, test, alpha, etc.) to the ORGS array variable in your repository settings.
Troubleshooting Docker Builds
If your Docker build fails with errors like:
403 Forbiddenornot foundfor base images:- Ensure
BASE_REGISTRY_USERNAMEandBASE_REGISTRY_TOKENsecrets are set correctly - Verify the base image exists at the specified registry
- Check that your PAT has
read:packagespermission for the base registry
- Ensure
denied: permission_denied: write_packagewhen pushing:- This happens when
GITHUB_TOKENdoesn't have access to push to existing packages - Solution 1 (Recommended): Set
DOCKER_PUSH_TOKENsecret with a PAT that haswrite:packagespermission - Solution 2: Grant the repository write access to the package:
- Go to:
https://github.com/orgs/YOUR_ORG/packages/container/PACKAGE_NAME/settings - Under "Manage Actions access" section, click "Add Repository"
- Add your
sfopsrepository with Write role - Repeat for both
sfopsandsfops-litepackages
- Go to:
- This happens when
- Authentication errors when pushing:
- Ensure
DOCKER_PUSH_TOKENsecret is set with a valid PAT - Verify your PAT has
write:packagespermission - If using SSO, ensure the PAT is authorized for your organization
- Ensure
Base Image Configuration:
- Production uses:
sfp-pro:latest(or your custom base via BASE_IMAGE_NAME) - Test/Alpha uses:
sfp-pro-rc:development(or your custom RC base via BASE_IMAGE_NAME_RC)
These variables will be automatically set up during the set up of sfops in your repository by the FLXBL team. This guide is only applicable when you are setting up a self managed instance of sfops