GRUB Workflow
The GRUB workflow supports rapid, iterative development by synchronizing local file changes directly to z/OS USS and automatically running the required build and deployment activities. Unlike the Zowe CLI workflow, it does not require changes to be committed or pushed to a remote repository before deployment.
Before using this workflow, complete Deploy Using GRUB to set up your environment.
Daily development cycle
1. Make changes
Modify application source code in your local workspace. No commit required. Common changes include:
- COBOL programs and copybooks
- BMS maps
- z/OS Connect API assets
- Configuration files
2. Trigger a GRUB sync
Trigger a GRUB sync from your local machine. GRUB analyzes your local changes, synchronizes only the modified files to z/OS USS, and automatically starts the build and deployment workflow.
Refer to your GRUB documentation for the specific command or UI action for your installation.
3. What runs automatically
After synchronization completes, GRUB automatically runs the deployment workflow on z/OS USS. The workflow:
- Validates the requied prerequisites.
- Uses the synchronized Bank of Z workspace on z/OS USS.
- Runs the required setup or pipeline scripts.
- Builds and deploys the updated application components.
- Makes the updated application available for validation.
GRUB detects that it is running from within the Bank-of-Z repository and uses the synced files directly — no re-cloning occurs. This is what makes subsequent syncs significantly faster than a full setup.
4. Validate changes
Open the Bank of Z frontend to verify your changes are live:
http://<your-zos-host>:9080/bank-frontend-vanilla
How Stage detection works
When setup-remote.sh runs on USS after a GRUB sync, it detects that it is executing from within the Bank-of-Z repository and uses that location directly:
if git rev-parse --git-dir > /dev/null 2>&1; then
local repo_name=$(basename "$(git rev-parse --show-toplevel)")
if [[ "$repo_name" == "Bank-of-Z" ]]; then
# GRUB workflow — use current repository location
BANK_DIR="$(git rev-parse --show-toplevel)"
fi
fi
This means your uncommitted local changes are used as-is, and no clone from GitHub is attempted.
Why use GRUB
| Feature | Benefit |
|---|---|
| No commits required | Test changes immediately without a Git commit or push |
| Patch-based sync | Only changed files are transferred, fast incremental updates |
| Automatic setup | Environment is ready as soon as the sync completes |
| Native execution | Runs directly on USS, no Zowe CLI overhead |
| Works offline | No GitHub connectivity needed after initial clone |
Related
- Zowe CLI Workflow — branch-based workflow with full Git traceability
- Workflow Comparison
- GRUB Setup
- Troubleshooting