Answers: <p>Jenkins slave runs in unix system services of z/OS and can run any script or function from there.  We use the Git plugin to pull the source code onto z/OS then you have different choices of how to work with it.  You can use IBM Dependency Based Build which is Groovy ported to z/OS plus some extensions to specifically work with native z/OS functions such as copy to PDS (or PDSE) or copy back to zFS, as well as the ability to run MVS, TSO, ISPF commands and submit JCL.  </p>
  
  <p>Also with the new Zowe announcement Zowe.org for a new open source project on z/OS you also have access to a number of REST based APIs work with files and perform other tasks on z/OS such as calling zOSMF.   </p>
  
Answers: CC BY-SA 4.0
Answers: 2019-06-21T18:30:51.117Z
Answers: I plan to do this: store all mainframe files in GitHub, and install Jenkins slave in USS in z/OS. During a commit or pull request, the webhook in GitHub will kick-off a Jenkins job which will downloads the file from GitHub and submit to z/OS for compile and link (we have perl scripts to do this now). What do you think?
Answers: Jirong Hu
Answers: CC BY-SA 4.0
Answers: 2018-09-09T21:09:16.270Z
Answers: 2018-09-09T21:09:16.270Z
Answers: Rosalind Radcliffe
Answers: <p>I set up jenkins to manage mainframe tables.   Essentially utilizing groovy script plugin. I wrote code that handles movement of files on the mainframe and call them though the plugin.   Essentially leveraging the mainframes API to connect and the vsc's commands to move the files.</p>
  
Answers: CC BY-SA 3.0
Answers: 2017-04-02T20:03:40.847Z
Answers: 2017-04-02T20:03:40.847Z
Answers: Eddie
Answers: <p>@Pierre.Vriens, wrt your ask about “investigate the feasibility of managing data stored in personal files (PDSes, i.e. partitioned data sets) on the mainframe.”, you can use zOS Management Facility (zOSMF) which comes with the z/OS operating system to access APIs for that. In Sujay's reply, he suggests using Brightside and that tool taps into the zOSMF APIs to simplify that task. So then if you want to tie Jenkins to the Mainframe to manage Partitioned Data Sets (PDS) and Data Sets (PS), you can use these zOSMF APIs or you could use <a href="https://docops.ca.com/ca-brightside-community-edition/1-0/en" rel="nofollow noreferrer">Brightside</a>. </p>
  
  <p>In the spirit of disclosure, I work as a UX Designer for CA Technologies who builds Brightside. </p>
  
Answers: CC BY-SA 4.0
Answers: 2018-06-28T15:40:10.800Z
Answers: 2018-06-28T16:01:17.877Z
Answers: 2018-06-28T16:01:17.877Z
Answers: John laPlante
Answers: <p>In general, there are two ways to automate actions from Jenkins:</p>
  
  <ol>
  <li>Install a plugin for Jenkins and use it in steps to automate tasks.</li>
  <li>Write a script (shell, python, other) and call it from a step to automate tasks.</li>
  </ol>
  
  <p>There are drawbacks / benefits to both approaches. While #1 - the plugin approach - gives you out of the box functionality and does not require you to script, it may be rigid and limited in its abilities. #2 - the scripting approach - requires you to write scripts, as well as maintain them, but may provide much more flexibiity and freedom in automating things.</p>
  
  <p>The scripting approach generally uses a lot of CLIs - aws cli, docker cli, etc. </p>
  
  <p>If #2 - the scripting approach - is viable and you're comfortable with writing shell scripts or other scripts like python to interact with the mainframe, then Brightside can help. </p>
  
  <p>Here's an example of using <a href="https://www.ca.com/us/trials/ca-brightside.html" rel="nofollow noreferrer">Brightside (free CLI)</a> to interact with PDS on z/OS from a shell script:</p>
  
  <pre><code>    #!/bin/sh
      echo 'bright files create classic "USER.PUBLIC.SAMPLE.PDS"'
      bright files create classic "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files download all-members "USER.LIB.SAMP" -d MyPDS'
      bright files download all-members "USER.LIB.SAMP" -d MyPDS
      echo ''
  
      echo 'bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"'
      bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
      bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f'
      bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f
      echo ''
  
      echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
      bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f'
      bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f
      echo ''
  </code></pre>
  
  <p>Here's the output from that script:</p>
  
  <p><a href="https://i.sstatic.net/ruVTc.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ruVTc.png" alt="enter image description here"></a>
  <a href="https://i.sstatic.net/BwueG.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/BwueG.png" alt="enter image description here"></a></p>
  
  <p>Easy enough to call these scripts from Jenkins and parse the output for whatever purpose.</p>
  
  <p>Full disclosure: I work for CA who created Brightside but we do use this CLI internally for the exact purpose of integrating our mainframe application testing with Jenkins.</p>
  
  <p>
  
Answers: CC BY-SA 4.0
Answers: 2018-06-12T18:11:21.320Z
Answers: Have you used it?
Answers: chicks
Answers: CC BY-SA 4.0
Answers: 2018-06-12T21:36:12.223Z
Answers: I fail to see how this may answer the question even remotely, please [edit] your answer to explain how it can answer the question or I'll delete it in 24h
Answers: Tensibai
Answers: CC BY-SA 4.0
Answers: 2018-06-13T14:26:52.467Z
Answers: Sure, I'll add more detail to my post.
Answers: Sujay Solomon
Answers: CC BY-SA 4.0
Answers: 2018-06-13T15:50:52.510Z
Answers: One more thing, please disclose your affiliation with the company you're promoting. See the self-promotion paragraph in our [behavior page](https://devops.stackexchange.com/help/behavior). This sounds like an honest attempt to answer, I'm feel it miss the point of using a plugin integrated in jenkins for pipeline use, but at least it doesn't look like 'product promotion only' anymore.
Answers: Tensibai
Answers: CC BY-SA 4.0
Answers: 2018-06-13T15:53:23.453Z
Answers: TL;DR: answering with a product you own/create is ok when you disclose your link with the product and explain how it can solve the problem.
Answers: Tensibai
Answers: CC BY-SA 4.0
Answers: 2018-06-13T15:56:29.587Z
Answers: Ah, understood - thanks! It's a bit of odd situation here because we built this for our dev team's use to satisfy this exact case of needing to test/automate mainframe things from Jenkins/other testing frameworks like MochaJS. I will update the post to disclose that I do work for CA.
Answers: Sujay Solomon
Answers: CC BY-SA 4.0
Answers: 2018-06-13T16:03:09.527Z
Answers: As far as plugin vs cli approach for Jenkins. 
  
  What we do is install brightside (and other CLIs/dependencies) into a docker image and every time a CI run happens in jenkins, we run this docker instance and all scripts that run from jenkins pipeline within this container now have access to all the CLIs like Brightside. 
  
  For us this was easier than trying to work plugins as we like the flexibiity/freedom of being able to script in shell/python for mainframe actions.
Answers: Sujay Solomon
Answers: CC BY-SA 4.0
Answers: 2018-06-12T16:19:36.657Z
Answers: 2018-06-14T15:54:36.577Z
Answers: 2018-06-14T15:54:36.577Z
Answers: Sujay Solomon
Body: <p>Assume somebody familiar with DevOps and mainframes, but new to <a href="https://jenkins.io/" rel="noreferrer">Jenkins</a>, wants to get started with Jenkins, e.g. to:</p>
  <ul>
  <li>investigate the feasibility of managing data stored in personal files (PDSes, i.e. <a href="https://en.wikipedia.org/wiki/Data_set_(IBM_mainframe)#Partitioned_data_sets" rel="noreferrer">partitioned data sets</a>) on the mainframe (so not, yet, managed by any of the typical <a href="https://devops.stackexchange.com/questions/273/which-scm-solutions-exist-for-managing-mainframe-software/275#275">SCM solutions exist for managing mainframe software</a>).</li>
  <li>to run Jenkins in some type of personal development environment, e.g. in a Linux environment in Virtual Box (if that would make sense).</li>
  </ul>
  <p>After some kind of (minimal) Jenkins <a href="https://www.tutorialspoint.com/jenkins/jenkins_installation.htm" rel="noreferrer">installation</a> and <a href="https://www.tutorialspoint.com/jenkins/jenkins_configuration.htm" rel="noreferrer">configuration</a> got completed, the actual question becomes &quot;<strong><code>Which of the typical Jenkins plugins, if any, would be needed?</code></strong>&quot;. From the various Jenkins plugins that appear to make sense in my case, it seems that these are possible candidates (quotes are from the linked pages):</p>
  <ul>
  <li><p><a href="https://wiki.jenkins-ci.org/display/JENKINS/IBM+zOS+Connector" rel="noreferrer">IBM zOS Connector</a>.</p>
  <blockquote>
  <p>... provides its functions via FTP connection to IBM z/OS LPAR. You can configure your SCLM project on z/OS and then check for the changes via Jenkins.</p>
  <p>Features include:</p>
  <ul>
  <li>Submission of user JCL job (with optional log collected upon finish).</li>
  <li>Introduction of SCLM as SCM for your projects allowing to checkout SCLM changes.</li>
  <li>The ability to build SCLM projects currently can be performed only via 'Submit zOS Job' build action.</li>
  </ul>
  </blockquote>
  </li>
  <li><p><a href="https://wiki.jenkins-ci.org/display/JENKINS/Compuware+Source+Code+Download+for+Endevor%2C+PDS%2C+and+ISPW+Plugin" rel="noreferrer">Compuware Source Code Download for Endevor, PDS, and ISPW Plugin</a>.</p>
  <blockquote>
  <p>... allows Jenkins users to download Endevor, PDS, or ISPW members from the mainframe to the PC. Source can then be accessed on the PC, for example, for SonarQube analysis and reporting.</p>
  </blockquote>
  </li>
  </ul>
  <p>Since the 1st plugin is about SCLM (which is all about PDSes), and the 2nd plugin explicitly states support for PDSes (in its name), I trust both are possible candidates.</p>
  <p>So assuming my shortlist is complete (is it?), what are the pros and cons of either one that should help me decide which one is best for my case?</p>
  <p>Ps: Something like a &quot;Jenkins Kickstart&quot; package doesn't seem to exist (at least I've not found it yet).</p>
  
Comments: CC BY-SA 3.0
Comments: 2017-03-03T14:48:40.683Z
Comments: By searching, a lot of searching, and maybe asking here when there's a pitfall on a specific subject. While building a resource of Q/A is great, that really too broad as is.
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T14:58:45.537Z
Comments: The question would be easier to answer if you would to outline a problem you want to solve with Jenkins. Trying to solve a specific problem is also a good start to learn a new tool!
Comments: Michaël Le Barbier
Comments: CC BY-SA 3.0
Comments: 2017-03-03T16:59:22.647Z
Comments: @MichaelGrünewald : how good are you in "mainframes" (is my question specific enough now)?
Comments: Pierre.Vriens
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:01:59.960Z
Comments: @Pierre.Vriens really, start by Jenkins website . There's links and tutorials for the ´kickstart'. For the rest there's too much for one question IMHO and without a clear problem statement and indices you already tried by yourself I am afraid this would be badly received
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:03:12.657Z
Comments: @Pierre.Vriens Seems far better now; thanks for editing. I've voted to reopen.
Comments: Aurora0001
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:05:28.483Z
Comments: You re question is more or less, how do I install Jenkins and connect it to a specific SCM. If worded around I" can't find a way to make Jenkins interact with this SCM, I am open to change SCM if it support mainframe objects (your link). Is there a specific plugin I overlooked or a tweak possible to achieve that ?" It would be more straight to the point and better I think
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:07:56.117Z
Comments: I overlooked the no actual SCM part, sorry. The idea still stand :) make a first choice and try, it's easier to give good answer to focused question
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:13:32.163Z
Comments: @Tensibai : merci for your attempt to help, but I'm confused (sorry). I trust you agree I'm not asking for "links to recommend a book, software or getting started docu" (= off topic on most SE sites). And I did already do some homework about the various plugins which IMO won't help (or will be overkill), which is why I added the "not managed by any SCM tool". So would you agree that if I further edit my question to "Is there a specific plugin I overlooked or a tweak possible to achieve that ?" I'm close to an acceptable question?
Comments: Pierre.Vriens
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:17:25.260Z
Comments: Well if you think no plugin would really help from your experience and that adding a SCM would be overkill for your workflow because it seems to integrate poorly yes. The part really bothering me is the basic setup of Jenkins, I read it as base install of the tool and that sounds too much for me
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:19:33.777Z
Comments: Mainly Jenkins is good at doing scripted jobs needed to build a software and trigger things, and I am a little lost about where you are stuck
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:27:30.477Z
Comments: Hang on @Tensibai ... You probably don't have an idea where (a) I'm coming from and (b) where I want to arrive "some day". Right now I'm working on further improving "this" question. And while trying to do so, I'm digesting some of your prior comments also.
Comments: Pierre.Vriens
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:28:47.830Z
Comments: After réflexion, just don't try to generalize too much your question , describe the problem you're facing and where you're facing a wall , I think that's the best way.
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:31:17.613Z
Comments: Sorry :) still unsure if the question is baked as an example or as a real problem... I'd prefer the later , we all have experience of hard things we had to overcome and it's usually giving better real world questions for the site (still my opinion)
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:39:17.787Z
Comments: Sorry, one More comment to say I vote to reopen, Previous comments was more general idea about it. I feel I've probably been harsh, it was not my intent.
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T17:45:17.263Z
Comments: @Tensibai merci for all the comments (attempts to help) ... Yes "a bit" harsh, but don't worry too much about that (I can handle that). Apart from that: hang on for a new attempt to improve (narrow down) my question.
Comments: Pierre.Vriens
Comments: CC BY-SA 3.0
Comments: 2017-03-03T22:27:15.240Z
Comments: WoW, nice rewrites, but I still have no clue of what you want to with Jenkins, linting ? Unit tests ? Isolated integration test ? Some kind of delivery pipeline ? Drawback of Jenkins is how malleable it is, With enough efforts you can achieve whatever needed. In case you're wondering, we implemented linting for RPG and a delivery pipeline on 10 'os400' partitions by driving Arcad through jt400 here, mainframe (zOs) is slightly different, but I still wonder What Is the goal ? :) Side note:I absolutely understand how hard it is to write a question about something you have solved.
Comments: Tensibai
Comments: CC BY-SA 3.0
Comments: 2017-03-03T22:31:57.063Z
Comments: Comments are not a great way to discuss, would be happy to chat to better express my concerns and discuss the topic . I'm not in position to edit in what I mean, because I don't know your goal and have no experience on mainframes CI so I Would probably forget parts.
Comments: Tensibai
Tags: <jenkins><jenkins-plugins><mainframe>
Title: Which plugin should I use to get started with Jenkins to manage mainframe components in PDS format?
UserDisplayName: Pierre.Vriens
ThreadText: # Which plugin should I use to get started with Jenkins to manage mainframe components in PDS format?
  
  (Asked by: username_0 on 2017-03-03)
  
  Assume somebody familiar with DevOps and mainframes, but new to [Jenkins](https://jenkins.io/), wants to get started with Jenkins, e.g. to:
  
  * investigate the feasibility of managing data stored in personal files (PDSes, i.e. [partitioned data sets](https://en.wikipedia.org/wiki/Data_set_(IBM_mainframe)#Partitioned_data_sets)) on the mainframe (so not, yet, managed by any of the typical [SCM solutions exist for managing mainframe software](https://devops.stackexchange.com/questions/273/which-scm-solutions-exist-for-managing-mainframe-software/275#275)).
  * to run Jenkins in some type of personal development environment, e.g. in a Linux environment in Virtual Box (if that would make sense).
  
  After some kind of (minimal) Jenkins [installation](https://www.tutorialspoint.com/jenkins/jenkins_installation.htm) and [configuration](https://www.tutorialspoint.com/jenkins/jenkins_configuration.htm) got completed, the actual question becomes "**`Which of the typical Jenkins plugins, if any, would be needed?`**". From the various Jenkins plugins that appear to make sense in my case, it seems that these are possible candidates (quotes are from the linked pages):
  
  * [IBM zOS Connector](https://wiki.jenkins-ci.org/display/JENKINS/IBM+zOS+Connector).
  
    > ... provides its functions via FTP connection to IBM z/OS LPAR. You can configure your SCLM project on z/OS and then check for the changes via Jenkins.
    >
    > Features include:
    >
    > + Submission of user JCL job (with optional log collected upon finish).
    > + Introduction of SCLM as SCM for your projects allowing to checkout SCLM changes.
    > + The ability to build SCLM projects currently can be performed only via 'Submit zOS Job' build action.
  * [Compuware Source Code Download for Endevor, PDS, and ISPW Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Compuware+Source+Code+Download+for+Endevor%2C+PDS%2C+and+ISPW+Plugin).
  
    > ... allows Jenkins users to download Endevor, PDS, or ISPW members from the mainframe to the PC. Source can then be accessed on the PC, for example, for SonarQube analysis and reporting.
  
  Since the 1st plugin is about SCLM (which is all about PDSes), and the 2nd plugin explicitly states support for PDSes (in its name), I trust both are possible candidates.
  
  So assuming my shortlist is complete (is it?), what are the pros and cons of either one that should help me decide which one is best for my case?
  
  Ps: Something like a "Jenkins Kickstart" package doesn't seem to exist (at least I've not found it yet).
  
  **Tags:** jenkins, jenkins-plugins, mainframe
  
  > **Comments:**
  > **username_1**: By searching, a lot of searching, and maybe asking here when there's a pitfall on a specific subject. While building a resource of Q/A is great, that really too broad as is.  
  > **username_2**: The question would be easier to answer if you would to outline a problem you want to solve with Jenkins. Trying to solve a specific problem is also a good start to learn a new tool!  
  > **username_0**: @MichaelGrünewald : how good are you in "mainframes" (is my question specific enough now)?  
  > **username_1**: @username_0 really, start by Jenkins website . There's links and tutorials for the ´kickstart'. For the rest there's too much for one question IMHO and without a clear problem statement and indices you already tried by yourself I am afraid this would be badly received  
  > **username_3**: @username_0 Seems far better now; thanks for editing. I've voted to reopen.  
  > **username_1**: You re question is more or less, how do I install Jenkins and connect it to a specific SCM. If worded around I" can't find a way to make Jenkins interact with this SCM, I am open to change SCM if it support mainframe objects (your link). Is there a specific plugin I overlooked or a tweak possible to achieve that ?" It would be more straight to the point and better I think  
  > **username_1**: I overlooked the no actual SCM part, sorry. The idea still stand :) make a first choice and try, it's easier to give good answer to focused question  
  > **username_0**: @username_1 : merci for your attempt to help, but I'm confused (sorry). I trust you agree I'm not asking for "links to recommend a book, software or getting started docu" (= off topic on most SE sites). And I did already do some homework about the various plugins which IMO won't help (or will be overkill), which is why I added the "not managed by any SCM tool". So would you agree that if I further edit my question to "Is there a specific plugin I overlooked or a tweak possible to achieve that ?" I'm close to an acceptable question?  
  > **username_1**: Well if you think no plugin would really help from your experience and that adding a SCM would be overkill for your workflow because it seems to integrate poorly yes. The part really bothering me is the basic setup of Jenkins, I read it as base install of the tool and that sounds too much for me  
  > **username_1**: Mainly Jenkins is good at doing scripted jobs needed to build a software and trigger things, and I am a little lost about where you are stuck  
  > **username_0**: Hang on @username_1 ... You probably don't have an idea where (a) I'm coming from and (b) where I want to arrive "some day". Right now I'm working on further improving "this" question. And while trying to do so, I'm digesting some of your prior comments also.  
  > **username_1**: After réflexion, just don't try to generalize too much your question , describe the problem you're facing and where you're facing a wall , I think that's the best way.  
  > **username_1**: Sorry :) still unsure if the question is baked as an example or as a real problem... I'd prefer the later , we all have experience of hard things we had to overcome and it's usually giving better real world questions for the site (still my opinion)  
  > **username_1**: Sorry, one More comment to say I vote to reopen, Previous comments was more general idea about it. I feel I've probably been harsh, it was not my intent.  
  > **username_0**: @username_1 merci for all the comments (attempts to help) ... Yes "a bit" harsh, but don't worry too much about that (I can handle that). Apart from that: hang on for a new attempt to improve (narrow down) my question.  
  > **username_1**: WoW, nice rewrites, but I still have no clue of what you want to with Jenkins, linting ? Unit tests ? Isolated integration test ? Some kind of delivery pipeline ? Drawback of Jenkins is how malleable it is, With enough efforts you can achieve whatever needed. In case you're wondering, we implemented linting for RPG and a delivery pipeline on 10 'os400' partitions by driving Arcad through jt400 here, mainframe (zOs) is slightly different, but I still wonder What Is the goal ? :) Side note:I absolutely understand how hard it is to write a question about something you have solved.  
  > **username_1**: Comments are not a great way to discuss, would be happy to chat to better express my concerns and discuss the topic . I'm not in position to edit in what I mean, because I don't know your goal and have no experience on mainframes CI so I Would probably forget parts.  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_4 on 2018-09-09. Score: 2
  
  Jenkins slave runs in unix system services of z/OS and can run any script or function from there. We use the Git plugin to pull the source code onto z/OS then you have different choices of how to work with it. You can use IBM Dependency Based Build which is Groovy ported to z/OS plus some extensions to specifically work with native z/OS functions such as copy to PDS (or PDSE) or copy back to zFS, as well as the ability to run MVS, TSO, ISPF commands and submit JCL.
  
  Also with the new Zowe announcement Zowe.org for a new open source project on z/OS you also have access to a number of REST based APIs work with files and perform other tasks on z/OS such as calling zOSMF.
  
  > **Comments:**
  > **username_5**: I plan to do this: store all mainframe files in GitHub, and install Jenkins slave in USS in z/OS. During a commit or pull request, the webhook in GitHub will kick-off a Jenkins job which will downloads the file from GitHub and submit to z/OS for compile and link (we have perl scripts to do this now). What do you think?  
  
  ---
  
  ### Answer by username_6 on 2017-04-02. Score: 2
  
  I set up jenkins to manage mainframe tables. Essentially utilizing groovy script plugin. I wrote code that handles movement of files on the mainframe and call them though the plugin. Essentially leveraging the mainframes API to connect and the vsc's commands to move the files.
  
  
  ---
  
  ### Answer by username_7 on 2018-06-28. Score: 1
  
  @username_0, wrt your ask about “investigate the feasibility of managing data stored in personal files (PDSes, i.e. partitioned data sets) on the mainframe.”, you can use zOS Management Facility (zOSMF) which comes with the z/OS operating system to access APIs for that. In username_8's reply, he suggests using Brightside and that tool taps into the zOSMF APIs to simplify that task. So then if you want to tie Jenkins to the Mainframe to manage Partitioned Data Sets (PDS) and Data Sets (PS), you can use these zOSMF APIs or you could use [Brightside](https://docops.ca.com/ca-brightside-community-edition/1-0/en).
  
  In the spirit of disclosure, I work as a UX Designer for CA Technologies who builds Brightside.
  
  
  ---
  
  ### Answer by username_8 on 2018-06-12. Score: 1
  
  In general, there are two ways to automate actions from Jenkins:
  
  1. Install a plugin for Jenkins and use it in steps to automate tasks.
  2. Write a script (shell, python, other) and call it from a step to automate tasks.
  
  There are drawbacks / benefits to both approaches. While #1 - the plugin approach - gives you out of the box functionality and does not require you to script, it may be rigid and limited in its abilities. #2 - the scripting approach - requires you to write scripts, as well as maintain them, but may provide much more flexibiity and freedom in automating things.
  
  The scripting approach generally uses a lot of CLIs - aws cli, docker cli, etc.
  
  If #2 - the scripting approach - is viable and you're comfortable with writing shell scripts or other scripts like python to interact with the mainframe, then Brightside can help.
  
  Here's an example of using [Brightside (free CLI)](https://www.ca.com/us/trials/ca-brightside.html) to interact with PDS on z/OS from a shell script:
  
  ```
      #!/bin/sh
      echo 'bright files create classic "USER.PUBLIC.SAMPLE.PDS"'
      bright files create classic "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files download all-members "USER.LIB.SAMP" -d MyPDS'
      bright files download all-members "USER.LIB.SAMP" -d MyPDS
      echo ''
  
      echo 'bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"'
      bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
      bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f'
      bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f
      echo ''
  
      echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
      bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
      echo ''
  
      echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f'
      bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f
      echo ''
  
  ```
  
  Here's the output from that script:
  
  [![enter image description here](https://i.sstatic.net/ruVTc.png)](https://i.sstatic.net/ruVTc.png)
  [![enter image description here](https://i.sstatic.net/BwueG.png)](https://i.sstatic.net/BwueG.png)
  
  Easy enough to call these scripts from Jenkins and parse the output for whatever purpose.
  
  Full disclosure: I work for CA who created Brightside but we do use this CLI internally for the exact purpose of integrating our mainframe application testing with Jenkins.
  
  > **Comments:**
  > **username_9**: Have you used it?  
  > **username_1**: I fail to see how this may answer the question even remotely, please [edit] your answer to explain how it can answer the question or I'll delete it in 24h  
  > **username_8**: Sure, I'll add more detail to my post.  
  > **username_1**: One more thing, please disclose your affiliation with the company you're promoting. See the self-promotion paragraph in our [behavior page](https://devops.stackexchange.com/help/behavior). This sounds like an honest attempt to answer, I'm feel it miss the point of using a plugin integrated in jenkins for pipeline use, but at least it doesn't look like 'product promotion only' anymore.  
  > **username_1**: TL;DR: answering with a product you own/create is ok when you disclose your link with the product and explain how it can solve the problem.  
  > **username_8**: Ah, understood - thanks! It's a bit of odd situation here because we built this for our dev team's use to satisfy this exact case of needing to test/automate mainframe things from Jenkins/other testing frameworks like MochaJS. I will update the post to disclose that I do work for CA.  
  > **username_8**: As far as plugin vs cli approach for Jenkins.   What we do is install brightside (and other CLIs/dependencies) into a docker image and every time a CI run happens in jenkins, we run this docker instance and all scripts that run from jenkins pipeline within this container now have access to all the CLIs like Brightside.   For us this was easier than trying to work plugins as we like the flexibiity/freedom of being able to script in shell/python for mainframe actions.  
  
  ---
  
  