Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New BREXX Build Engine and Github Actions #120

Merged
merged 81 commits into from
May 12, 2024

Conversation

mainframed
Copy link

New Build Engine

I've completely re-written the makefile and the build engine. Now a python script (which uses automvs), in conjuctions with the makefile, builds and tests BREXX370 on TK4-, MVS/CE and TK5, it also can make the XMIT files for those releases and push them to githum. It come with multiple make targets. The documentation is in the /build/ folder in the README.md file.

With these changes anyone now can build BREXX fully from source. There are no longer any pre-built object files, they are built using the make command as well.

To use this in a development capacity make sure you edit the make file to point at the TK4 or TK5 folder, make your changes and type make or make install or make test.

Releases

To make a BREXX release you can type make release which will make 3 ZIP files which include:

  • BREXX XMIT file
  • Instalation JCL customize for the three MVS flavors (TK4-, MVS/CE, TK5)
  • An EBCDIC JCL file that when submitted unxmits BREXX install PDS to BREXX..INSTALL
  • /html which contains all the BREXX documentation in HTML form built from the /docs folder
  • BREXX370_Users_Guide.pdf which is the current user guide built from the /docs folder

Testing

When running make test all tests from the /test folder as well as all the tests in the $TESTRX jcl file are run, the build fails if any of the tests fail.

Samples and rxlib changes

All the samples were changed such that no line in the sample file is longer than 80 chars. This is to accommodate the way files are uploaded to MVS using the card reader.

Also, the JESVIEW sample was change to handle the -8 return code on failure as it was failing some tests on MVS/CE.

Github Actions

The new github actions make heavy use of the new build engine and rely on each step to complete. On any pull request or push the test action will run which:

  1. Builds BREXX on MVS/CE, TK4-, and TK5
  2. Tests BREXX on MVS/CE, TK4-, and TK5
  3. If those succeed a pre-release build is made
  4. The prerelease XMIT and the included installation JCL is tested on MVS/CE, TK4-, and TK5
  5. If that also succeeds a pre-release version is added to the releases

There's also a release github action which will make an official release of the current version (it grabs the version to BREXX.h).

To make a release on github, in a terminal you can type git tag -a V2R5M3 -m "This is the new release", replacing the version number and hitting enter. Then type git push --tags and a new release of BREXX will be placed in github.

I should also not that the $README file in the BREXX XMIT is now automatically generated from the installation instructions in /docs/source/installation.rst. I've edited this file to ensure none of the lines are wider than 72 columns to make it easier to read in RFE/RPF.

Let me know if you have questions.

…rrent brexx version in the documentation automatically
1. Moved the old build engine to `build/old`
2. Created a new Makefile and python script which supports building on TK4-, TK5 and MVS/CE
… also making jcc logging verbose if any of the compile/prelink/objscan fails
… also making jcc logging verbose if any of the compile/prelink/objscan fails
…stal as well as adding individual builds for the 3 MVS3.8j distros
@Peter-Jacob Peter-Jacob merged commit b984540 into mvslovers:master May 12, 2024
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants