Coder Social home page Coder Social logo

natyman48 / dbb-zappbuild Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibm/dbb-zappbuild

0.0 0.0 0.0 458 KB

zAppBuild is a generic build solution for building z/OS applications using Apache Groovy build scripts and IBM Dependency Based Build (DBB) APIs.

License: Apache License 2.0

Groovy 96.27% COBOL 3.73%

dbb-zappbuild's Introduction

zAppBuild

zAppBuild is a generic build solution for building z/OS applications using Apache Groovy build scripts and IBM Dependency Based Build (DBB) APIs.

Resources

Contributing

For instructions on how to contribute enhancements and bug fixes to zAppBuild, please read the Contributions Guidelines.

How zAppBuild works

The zAppBuild repository is intended to be cloned to a single location on Unix Systems Services (USS) and used to build all of your z/OS applications. This is done by simply copying the supplied application-conf folder (located in the samples folder) to the application source repository you want to build and then verify/update the contained default configuration property values to ensure they meet the build requirements of your application. See the included MortgageApplication sample for an example of an application that has been modified to be built by zAppBuild.

IMPORTANT : The datasets.properties must be configured for your build machine before executing a build! See build-conf/README.md for more information.

Supported Languages

The zAppBuild sample provides the following language build scripts by default:

  • Assembler.groovy
  • BMS.groovy
  • Cobol.groovy
  • LinkEdit.groovy (for building link cards)
  • PLI.groovy
  • DBDgen.groovy
  • PSBgen.groovy
  • MFS.groovy
  • ZunitConfig.groovy

All language scripts both compile and optionally link-edit programs. The language build scripts are intended to be useful out of the box but depending on the complexity of your applications' build requirements, may require modifications to meet your development team's needs. By following the examples used in the existing language build scripts of keeping all application specific references out of the build scripts and instead using configuration properties with strong default values, the zAppBuild sample can continue to be a generic build solution for all of your specific applications.

Build Scope

The build scope of zAppBuild is an application which is loosely defined as one or more Git repositories containing all the z/OS source files required to build the application. There are no specific rules as to the structure of the repositories except that one repository must contain the high level application-conf folder provided by zAppBuild which contains all of the configuration properties for building the application programs.

NOTE: All source repositories that make up the application must be cloned on the build machine under a common workspace directory prior to calling build.groovy.

zAppBuild supports a number of build scenarios:

  • Single Program - Build a single program in the application.
  • List of Programs - Build a list of programs provided by a text file.
  • Full Build - Build all programs (or buildable files) of an application.
  • Impact Build - Build only programs impacted by source files that have changed since the last successful build.
  • Impact Build with baseline reference - Build only programs impacted by source files that have changed by diff'ing to a previous configuration reference.
  • Topic Branch Build - Detects when building a topic branch for the first time and will automatically clone the dependency data collections from the main build branch in order to avoid having to rescan the entire application.
  • Merge Build - Build only changed programs which will be merged back into the mainBuildBranch by using a triple-dot git diff.
  • Scan Source - Skip the actual building and only scan source files to store dependency data in collection (migration scenario).
  • Scan Source + Outputs - Skip the actual building and only scan source files and existing load modules to dependency data in source and output collection (migration scenario with static linkage scenarios).

Links to additional documentation is provided in the table below. Instructions on invoking a zAppBuild is included in BUILD.md as well as invocation samples for the above mentioned build scenarios including sample console log.

zAppBuild comes with a set of reporting features. It helps development teams to understand the impact of changed files across multiple applications. Another feature helps to identify conflicts due to concurrent development activities within their application. An overview of these features are documented in REPORT.md.

Repository Legend

Folder/File Description Documentation Link
build-conf This folder contains global configuration properties used by build.groovy and language build scripts. build-conf/README.md
languages This folder contains the language specific build scripts that are associated to build files via script mappings (see samples/application-conf/files.properties) and called by build.groovy. languages/README.md
samples/application-conf The application-conf folder contains application specific configuration properties used by build.groovy and language build scripts. It is intended to be copied as a high level folder to the application repository and configured to meet the build requirments of the application. Ex. myAppRepository/application-conf samples/application-conf/README.md
samples/MortgageApplication This is an updated version of the original MortgageApplication sample designed to be built by zAppBuild. samples/MortgageApplication/README.md
utilities This folder contains utility scripts which provide common utility functions used by the various zAppBuild build scripts. utilities/README.md
build.groovy This is the main build script that is called to start the build process. BUILD.md
test This folder contains testing framework for ZAppBuild which includes test scripts and related test content. test/README.md

dbb-zappbuild's People

Contributors

dennis-behm avatar drbruce-git avatar jbyibm avatar m-dlb avatar lburgess07 avatar emanup avatar franktuma avatar flpet-ibm avatar ricedavida avatar arthiireddy avatar beckerfrank avatar geraldmit avatar rswoffor avatar ronniegeraghty avatar stevemar avatar wmathis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.