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:

  1. Go to Actions → "release-please" from the left sidebar

  2. Click "Run workflow" for manual trigger

  3. Or it runs automatically on pushes to main branch

This workflow:

  • Creates releases using release-please (when changes are detected)

  • For each environment in ORGS array:

    • Builds sfops and sfops-lite Docker images from base sfp-pro images

    • Uses BASE_REGISTRY, BASE_REPO, BASE_IMAGE_NAME, and BASE_LITE_IMAGE_NAME variables to pull the base images

    • Tags images with version number (e.g., 31.2.0) and latest

    • 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 to sfp-pro)

  • BASE_LITE_IMAGE_NAME: For the lite sfops image (defaults to sfp-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 Forbidden or not found for base images:

    • Ensure BASE_REGISTRY_USERNAME and BASE_REGISTRY_TOKEN secrets are set correctly

    • Verify the base image exists at the specified registry

    • Check that your PAT has read:packages permission for the base registry

  • Authentication errors when pushing:

    • Ensure DOCKER_USERNAME and DOCKER_SECRET secrets are set

    • Verify your PAT has write:packages permission

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)

Last updated