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:

  1. Validates the requied prerequisites.
  2. Uses the synchronized Bank of Z workspace on z/OS USS.
  3. Runs the required setup or pipeline scripts.
  4. Builds and deploys the updated application components.
  5. 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