GithubHelp home page GithubHelp logo

isabella232 / cloud-mta-build-tool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sap/cloud-mta-build-tool

0.0 0.0 0.0 56.49 MB

Multi-Target Application (MTA) build tool for Cloud Applications https://sap.github.io/cloud-mta-build-tool

License: Apache License 2.0

JavaScript 0.14% Makefile 0.39% Go 99.01% Smarty 0.02% Shell 0.44%

cloud-mta-build-tool's Introduction

MBT logo


CircleCI Go Report Card CII Best Practices Coverage Status Beta GitHub stars dependentbot REUSE status

Description

Multi-Target Application

Before using this package, make sure that you are familiar with the multi-target application concept and terminology. For background and detailed information, see the Multi-Target Application Model guide.

The Cloud MTA Build Tool Overview

The Cloud MTA Build Tool is a standalone command-line tool that builds a deployment-ready multitarget application (MTA) archive .mtar file from the artifacts of an MTA project according to the project’s MTA development descriptor (mta.yaml file) or from module build artifacts according to the MTA deployment descriptor (mtad.yaml file). Also, it provides commands for running intermediate build process steps; for example, the mta.yaml file validations, building a single module according to the configurations in the development descriptor, generating the deployment descriptor, and so on.

For more information, see the Cloud MTA Build Tool user guide

Demo

This demo shows the basic usage of the tool. For more advanced scenarios, follow the documentation.

The Cloud MTA Build Tool Images

We supply serveral images for CI environment containg the Cloud MTA Build Tool. The images are hosted at Github container registry and also at Docker Hub registry. The images are built from template docker files which depend on most common technologies (Java and Node) as follows:

Additional image which is more light-weight and gives the flexibility to add "per-scenario" the required set of tools:

How to pull the images

You should choose the relevant image type from following list to replace the <TYPE> template in the command/FROM according your MTA project technologies:

  • java8-node12
  • java8-node14
  • java11-node12
  • java11-node14
  • alpine

From the command line:

$ docker pull devxci/mbtci-<TYPE>:latest

or

$ docker pull ghcr.io/sap/mbtci-<TYPE>:latest

From Dockerfile as a base image:

FROM devxci/mbtci-<TYPE>:latest

or

FROM ghcr.io/sap/mbtci-<TYPE>:latest

E.g. if your MTA project uses Java 11 and Node 14 then you should pull the relevant image as follows:

From the command line:

$ docker pull devxci/mbtci-java11-node14:latest

or

$ docker pull ghcr.io/sap/mbtci-java11-node14:latest

From Dockerfile as a base image:

FROM devxci/mbtci-java11-node14:latest

or

FROM ghcr.io/sap/mbtci-java11-node14:latest
How to use the images

You should choose the relevant image type from following list to replace the <TYPE> template in the command according your MTA project technologies:

  • java8-node12
  • java8-node14
  • java11-node12
  • java11-node14
  • alpine

On a Linux/Darwin machine you can run:

docker run -it --rm -v "$(pwd)/[proj-releative-path]:/project" devxci/mbtci-<TYPE>:latest mbt build -p=cf -t [target-folder-name]

This will build an mtar file for SAP Cloud Platform (Cloud Foundry). The folder containing the project needs to be mounted into the image at /project.

Note: The parameter -p=cf can be omitted as the build for cloud foundry is the default build, this is an example of the MBT build parameters, for further commands see MBT docs.

How to build the images

To buid the images, you should choose the relevant docker file type from following list to replace the <TYPE> template in the Dockerfile according your MTA project Java version:

  • java8
  • java11

Copy the docker file template:

cp Dockerfile_<TYPE> Dockerfile

E.g. copy the docker file used for Java 8:

cp Dockerfile_java8 Dockerfile

Replace NODE_VERSION_TEMPLATE with your Node version in the Dockerfile:

ARG NODE_VERSION=NODE_VERSION_TEMPLATE

Then you can build the image:

docker build -t devxci/mbtci .

To build the mbtci-alpine image you can run:

docker build -f Dockerfile_alpine -t devxci/mbtci .
The images provide:
  • Cloud MTA Build Tool - 1.2.8
  • Nodejs - 12.22.5 or 14.17.5
  • Maven - 3.6.3
  • Golang - 1.14.7
  • Java - 8 or 11

The MTA Archive Builder delegates module builds to other native build tools. These images provide Node.js, Maven, Java, and Golang so the archive builder can delegate to these build technologies. In case other build tools are needed, inherit from one of these images and add more build tools.

License

Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. Please note that Docker images can contain other software which may be licensed under different licenses. This License file is also included in the Docker image. For any usage of built Docker images please make sure to check the licenses of the artifacts contained in the images.

Contributions

Contributions are greatly appreciated. If you want to contribute, follow the guidelines.

Support

Please follow our issue template on how to report an issue.

cloud-mta-build-tool's People

Contributors

allavolkov avatar ashwinsyadgiri avatar avizov avatar bd82 avatar ccfenner avatar cloudmtabot avatar dependabot-preview[bot] avatar dependabot[bot] avatar enchobelezirev avatar jhornik avatar jonathanbaker7 avatar katunin-ng avatar martwz avatar michawai avatar paolaufer avatar rayakoren avatar rimasirich avatar rlindner81 avatar sapirpol avatar sebastianwolf-sap avatar shimit avatar tal-sapan avatar tyzanol avatar yotamshapira 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.