@@ -8,48 +8,13 @@ This automation system streamlines the zppy integration testing workflow, reduci
88``` bash
99./run_integration_test.bash
1010```
11- This will:
12- - Use today's date as the test identifier
13- - Stop at checkpoints for you to verify
14- - Set up all environments from scratch
15- - Run the complete test suite
16-
17- ### Fully Automated Mode
18- ``` bash
19- ./run_integration_test.bash --auto
20- ```
21- Runs end-to-end without stopping (suitable for CI or overnight runs).
22-
23- ### Custom Date Stamp
24- ``` bash
25- ./run_integration_test.bash --date 20260123
26- ```
27-
28- ### Resume from Specific Phase
29- ``` bash
30- # If Phase 1 completed but you need to re-run Phase 2
31- ./run_integration_test.bash --phase 2 --date 20260123
32- ```
33-
34- ## Complete Options
35-
36- ```
37- ./run_integration_test.bash [OPTIONS]
38-
39- Options:
40- --date YYYYMMDD Date stamp for test (default: today)
41- --auto Run fully automated (no checkpoints)
42- --phase N Start from phase N (1=setup, 2=bundles_part2, 3=validation)
43- --help Show help message
44- ```
4511
4612## Workflow Phases
4713
4814### Phase 1: Setup (~ 2-4 hours including SLURM wait)
4915- Sets up e3sm_diags conda environment
5016- Sets up zppy-interfaces conda environment
5117- Sets up zppy conda environment
52- - Applies optional cherry-pick
5318- Generates config files
5419- Submits initial SLURM jobs (6 configs)
5520- Waits for jobs to complete
@@ -84,28 +49,6 @@ salloc --nodes=1 --partition=debug --time=02:00:00 --account=e3sm
8449./run_image_tests.bash --date 20260123 --auto
8550```
8651
87- ## Common Workflows
88-
89- ### Full Test with Custom Date
90- ``` bash
91- # Interactive mode with checkpoints
92- ./run_integration_test.bash --date 20260123
93-
94- # When prompted, allocate compute node for images:
95- salloc --nodes=1 --partition=debug --time=02:00:00 --account=e3sm
96- ./run_image_tests.bash --date 20260123
97- ```
98-
99- ### Overnight Automated Run
100- ``` bash
101- # Start before leaving for the day
102- nohup ./run_integration_test.bash --auto --date 20260123 > test_run.log 2>&1 &
103-
104- # Next morning, run image tests manually
105- salloc --nodes=1 --partition=debug --time=02:00:00 --account=e3sm
106- ./run_image_tests.bash --date 20260123
107- ```
108-
10952## Output and Logs
11053
11154The script provides color-coded output:
@@ -129,16 +72,6 @@ Automatically checks for errors in status files:
12972...
13073```
13174
132- ## Environment Variables
133-
134- You can set these before running the script:
135-
136- ``` bash
137- export DATE_STAMP=20260123
138- export UNIQUE_ID=" custom_test_id"
139- ./run_integration_test.bash
140- ```
141-
14275## Customization
14376
14477### Modify Test Configurations
@@ -164,51 +97,27 @@ wait_for_slurm_jobs 30 14400 # 30s interval, 4hr max
16497wait_for_slurm_jobs 30 3600 # 30s interval, 1hr max
16598```
16699
167- ### Add Custom Checks
168-
169- Add your own validation in ` phase_3_validation() ` :
170-
171- ``` bash
172- # Custom validation example
173- log " Running custom checks..."
174- if [ -f " $ZPPY_DIR /my_custom_check.bash" ]; then
175- bash " $ZPPY_DIR /my_custom_check.bash"
176- fi
177- ```
178-
179100## Troubleshooting
180101
181102### Script Exits Early
182103Check the error message. The script uses ` set -e ` , so it exits on any error.
183104
184105### Jobs Don't Complete
185- - Check SLURM queue: ` squeue -u ac.forsyth2 `
106+ - Check SLURM queue: ` squeue -u <user> `
186107- Check job logs in the output directories
187108- Increase timeout: edit ` wait_for_slurm_jobs ` calls
188109
189110### Environment Issues
190111``` bash
191112# Clean and rebuild
192- conda remove --y --all --name test-diags-main-20260123
193- conda remove --y --all --name test-zi-main-20260123
194- conda remove --y --all --name test-zppy-main-20260123-env
113+ conda remove --y --all --name test-diags-main-YYMMDD
114+ conda remove --y --all --name test-zi-main-YYMMDD
115+ conda remove --y --all --name test-zppy-main-YYMMDD
195116
196- # Re-run
197- ./run_integration_test.bash --date 20260123
198- ```
199-
200- ### Git Issues
201- ``` bash
202- # If git operations fail, manually clean up:
203- cd ~ /ez/zppy
204- git reset --hard upstream/main
205- git clean -fd
206- ./run_integration_test.bash --date 20260123
117+ # Check configurations and then re-run
118+ ./run_integration_test.bash
207119```
208120
209- ### Checkpoint Issues in Auto Mode
210- The script will proceed automatically but log warnings. Review logs after completion.
211-
212121## Files Created
213122
214123```
@@ -223,40 +132,12 @@ The script will proceed automatically but log warnings. Review logs after comple
223132└── test_images_summary.md
224133
225134/lcrc/group/e3sm/ac.forsyth2/
226- ├── zppy_weekly_bundles_output/zppy_main_branch_test_YYYYMMDD /
227- ├── zppy_weekly_comprehensive_v2_output/zppy_main_branch_test_YYYYMMDD /
228- ├── zppy_weekly_comprehensive_v3_output/zppy_main_branch_test_YYYYMMDD /
229- └── zppy_weekly_legacy_3.0.0_*/zppy_main_branch_test_YYYYMMDD /
135+ ├── zppy_weekly_bundles_output/zppy_main_branch_test_YYYYMMDD_run1 /
136+ ├── zppy_weekly_comprehensive_v2_output/zppy_main_branch_test_YYYYMMDD_run1 /
137+ ├── zppy_weekly_comprehensive_v3_output/zppy_main_branch_test_YYYYMMDD_run1 /
138+ └── zppy_weekly_legacy_3.0.0_*/zppy_main_branch_test_YYYYMMDD_run1 /
230139```
231140
232- ## Tips
233-
234- 1 . ** Use descriptive date stamps** : Instead of the current date, use a meaningful identifier like ` 20260123_bugfix ` or ` 20260123_pr769 `
235-
236- 2 . ** Run overnight** : The full test takes 2-4 hours. Start it before leaving:
237- ``` bash
238- nohup ./run_integration_test.bash --auto > test.log 2>&1 &
239- ```
240-
241- 3 . ** Keep logs** : Redirect output to files for later review:
242- ``` bash
243- ./run_integration_test.bash --auto 2>&1 | tee test_$( date +%Y%m%d) .log
244- ```
245-
246- 4 . ** Parallel testing** : Run different date stamps to test multiple branches:
247- ``` bash
248- ./run_integration_test.bash --date 20260123_main &
249- ./run_integration_test.bash --date 20260123_feature --cherry-pick abc123 &
250- ```
251-
252- ## Support
253-
254- For issues or questions:
255- 1 . Check the troubleshooting section above
256- 2 . Review the script output for error messages
257- 3 . Check SLURM logs in the output directories
258- 4 . Contact the zppy development team
259-
260141## Example run
261142
262143``` bash
@@ -268,14 +149,14 @@ git status
268149cd ~ /ez/zppy
269150git status
270151
271- cd /home/ac.forsyth2/ez/zppy_main_branch_tests/test_20260123
152+ cd /home/ac.forsyth2/ez/zppy_main_branch_tests/test_20260126
272153cp ~ /ez/zppy/tests/main_branch_testing/* . # Copy, so the script isn't affected by the branch change
273154emacs run_integration_test.bash # Configure parameters
274155
275156screen # Run on screen
276- cd /home/ac.forsyth2/ez/zppy_main_branch_tests/test_20260123 # If not there already
157+ cd /home/ac.forsyth2/ez/zppy_main_branch_tests/test_20260126 # If not there already
277158# Bypass manual checkpoints, tee output:
278- time ./run_integration_test.bash --date 20260123_run1 --auto 2>&1 | tee integration_test.log
159+ time ./run_integration_test.bash --date 20260126_run1 --auto 2>&1 | tee integration_test.log
279160# CTRL A D to exit screen
280161screen -ls # Check which node the screen is on.
281162tail -f integration_test.log # Follow log updates
0 commit comments