Written By Rituraj Mahato, Vellore Institute of Technology, Vellore
From June to August, I along with my fellow mentee Ali Mohamed contributed to the Open Mainframe Project’s COBOL Programming Course. I updated the course to integrate features from the Zowe V3 release and enhanced the initial chapter.
Ali improved the existing COBOL CHECK chapter by adding a section on automation using GitHub Actions. This ensures that we provide learners with a more comprehensive and modern learning experience, incorporating the latest tools and practices for automating COBOL code validation and deployment.
Our initial goal was to use Jenkins for creating CI/CD pipelines, which led us to attempting to run Jenkins on IBM’s LinuxONE Community Cloud instance as a testing ground for these functions.
After interacting with a few IBM Z SMEs, we found that GitHub Actions would be a better option for automation, as it is easier for us to implement and for learners to use later. Its more widespread use makes it a better-suited DevOps platform for the course.
Initially, while going through the course myself, I used the latest pre-release of Zowe V3 to find errors and changes resulting from the update. I already had hands-on experience with Zowe, thanks to my earlier journey on the IBM Z Xplore platform, which enables learners to gain practical mainframe skills on a real mainframe.
While there were difficulties along the way, under the mentorship of Michael Bauer, Software Engineering Supervisor at Broadcom; Sudharsana Srinivasan, IBM Z Influencer and Program Manager at IBM; and Ashis Kumar Naik, a former Open Mainframe Project Mentee, and with the assistance of my colleague Ali, we’ve achieved significant progress.
Watch the COBOL Programming Course Q3 Webinar to learn more about my achievements:
Let’s discuss why I applied to this mentorship?
From the first year, I knew that the LFX mentorship provides opportunities for students to work on open source projects. This summer, while browsing the LFX portal, I came across some familiar open source projects such as the COBOL Programming Course, Open Mainframe Education, and more.
The primary reason I applied was that I was already familiar with most of the skills listed in the tech stack. Before applying, I did my research and submitted applications to multiple projects. Then, one day, I received the notification that I had been selected for the program.
Before applying for the mentorship, I interacted with open mainframe project mentors to discuss the objectives and major updates to the course this year.
My Learning Journey with COBOL Programming
I won’t say that I didn’t know about this language before this mentorship program, but the time I spent and the interactions I had with my mentors significantly improved knowledge and skills. The non-technical knowledge I gained during the program was also incredibly helpful.
I did IBM Z Xplore challenges to revise my mainframe skills, whether it was about using certain commands in Zowe or understanding the files generated after submitting a JCL to the mainframe. While exploring the COBOL Programming course, I ensured that I noted every small detail I could find while trying the course myself using the pre-released version of Zowe V3.
I created a document detailing my observations and proposed changes to the COBOL Programming Course. This was done to ensure an error-free learning experience for the learners.
Understanding the Automation with GitHub Actions
GitHub Actions allows you to automate workflows within your GitHub repository. We thought that it would be a powerful and easy to use platform for automating tasks related to Zowe CLI commands and running COBOL Check.
It allows defining workflows in a YAML configuration file, similar to other CI/CD tools.
This YAML file can specify Zowe CLI commands to be executed along with options for handling outputs and chaining actions.
One of the key objectives for future development is to further automate the process by extending the current workflow by incorporating the submission of jobs using JCL (Job Control Language) files. This enhancement will:
- Automate Operations: Streamline complex mainframe tasks by using JCL files, reducing manual steps.
- Standardize Processes: Develop consistent JCL templates for common tasks. 3. Improve Error Handling: Enhance reliability with robust error checking for job submissions. 4. Integrate Workflow: Incorporate JCL submission into our GitHub Actions workflow for cohesive automation.
Conclusion
I would like to thank my mentors Ashis Kumar Naik, Michael Bauer and Sudharsana Srinivasan for guiding me throughout this journey and providing valuable feedback. Looking forward to contributing more to this project!
Stay tuned here and the Open Mainframe Project social channels for more mentee blogs and videos.
- Follow us on X at @Openmfproject
- Connect with our LinkedIn page
- Subscribe to our Youtube Channel
- Sign up to get our newsletter