Updating to v31.5.0
📋 Required Migration Steps
1. Pull Latest sfops Release from Upstream
Sync your fork with the official sfops v31.5.0 release:
# Add upstream repository (one-time setup)
git remote add upstream https://source.flxbl.io/flxbl/sfops
# Fetch and create PR for v31.5.0
git fetch upstream --tags
git checkout -b sfops-v31.5.0-update
git merge v31.5.0
git push origin sfops-v31.5.0-update
# Create PR via GitHub UI and merge it to main2. Configure NPM Settings
Add NPM_SCOPE Variable (Optional)
Note: Only required if you want to use a custom NPM scope different from your GitHub organization name. If not set, it defaults to your GitHub org name, which is usually fine.
If you need a custom scope:
- Go to Settings → Secrets and variables → Actions → Variables
- Add new repository variable:
NPM_SCOPE - Value: your custom npm scope (e.g.,
@customscope)
Add NPM_RC Secret (Only for Non-GitHub Registries)
Skip this if using GitHub Packages (default). Only needed for JFrog, GitLab, Azure Artifacts, etc.
- Go to Settings → Secrets and variables → Actions → Secrets
- Add new repository secret:
NPM_RC - Value should contain your registry configuration (see Step 4 for details)
3. Update Workflow Files
Update the following workflow files to include the npm-scope input:
sfops-cron-env-operations-prepare-scratch-ci-pool.ymlsfops-cron-env-operations-prepare-scratch-dev-pool.ymlsfops-open-issue.ymlsfops-open-release-any-envs.ymlsfops-open-release-issue.ymlsfops-push-to-branch.yml
Add the npm-scope parameter to the with section and ensure NPM_RC is in secrets:
jobs:
build-test-publish:
name: 'Build Test & Publish'
uses: nisa/sfops-gh-actions/.github/workflows/push-to-branch.yml@main
with:
# ... existing inputs ...
npm-scope: ${{ vars.NPM_SCOPE }} # Add this line
secrets:
# ... existing secrets ...
NPM_RC: ${{ secrets.NPM_RC }} # Add this line if not already present3. For Custom NPM Registry
If you want to use a non-GitHub NPM registry (JFrog, GitLab, Azure Artifacts, etc.):
Add NPM_RC Secret
- Go to Settings → Secrets and variables → Actions → Secrets
- Add new repository secret:
NPM_RC - Value should contain your registry configuration:
@yourscope:registry=https://your-registry-url/
//your-registry-url/:_authToken=${NPM_TOKEN}Verify Scope in NPM_RC
Ensure your NPM_RC secret includes the scope configuration that matches your NPM_SCOPE variable.
4. For GitHub Packages Users (Default)
If you're using GitHub Packages (the default), you only need to:
- Add the
NPM_SCOPEvariable (Step 1) - Update workflow files (Step 2)
- No additional configuration needed
⚠️ Breaking Change Warning
The setup-npm-registry action now validates that custom npmrc configurations include the required scope. Workflows will fail if:
NPM_SCOPEvariable is missing- Custom
NPM_RCsecret doesn't include the matching scope configuration
🔄 Rollback Plan (if necessary)
Pin workflows to previous version: uses: flxbl-io/sfops/.github/workflows/push-to-branch.yml@v31.3.0
✅ Validation Checklist
- Pulled sfops v31.5.0 from upstream
- Created PR from
sfops-v31.5.0-updatebranch to main - Merged the PR to main
- Merged release-please PR that was created after the merge
- Pushed changes to test org
- Created PR from
- Added
NPM_RCsecret with correct scope - Added
NPM_SCOPErepository variable - Updated all workflow files with
npm-scopeinput - Tested
sfops-push-to-branch.ymlworkflow to verify full release flow works - Verified packages are published to correct registry with correct scope