UNPKG

@atomist/atomist-sdm

Version:

Atomist SDM to deliver our own projects

70 lines 3.93 kB
"use strict"; /* * Copyright © 2019 Atomist, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const sdm_1 = require("@atomist/sdm"); const sdm_pack_docker_1 = require("@atomist/sdm-pack-docker"); const sdm_pack_spring_1 = require("@atomist/sdm-pack-spring"); const goals_1 = require("./goals"); const release_1 = require("./release"); const MavenDefaultOptions = { pushTest: sdm_pack_spring_1.IsMaven, logInterpreter: sdm_1.LogSuppressor, }; /** * Add Maven implementations of goals to SDM. * * @param sdm Software Delivery machine to modify * @return modified software delivery machine */ function addMavenSupport(sdm) { goals_1.build.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-package", builder: sdm_pack_spring_1.mavenBuilder([{ name: "skip.npm" }, { name: "skip.webpack" }]) })); goals_1.version.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-versioner", versioner: sdm_pack_spring_1.MavenProjectVersioner })); goals_1.dockerBuild.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-docker-build", imageNameCreator: sdm_pack_docker_1.DefaultDockerImageNameCreator, options: Object.assign({}, sdm.configuration.sdm.docker.hub, { push: true, builder: "docker" }) })) .withProjectListener(sdm_pack_spring_1.MvnVersion) .withProjectListener(sdm_pack_spring_1.MvnPackage); goals_1.releaseVersion.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-release-version", goalExecutor: release_1.executeReleaseVersion(sdm_pack_spring_1.MavenProjectIdentifier, mvnIncrementPatch) })); goals_1.publish.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-publish", goalExecutor: goals_1.noOpGoalExecutor })); goals_1.releaseDocs.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-docs-release", goalExecutor: goals_1.noOpGoalExecutor })); // No need to release npm for a Maven project. Maybe make this a more generic goal. goals_1.release.with(Object.assign({}, MavenDefaultOptions, { name: "mvn-release", goalExecutor: goals_1.noOpGoalExecutor })); return sdm; } exports.addMavenSupport = addMavenSupport; /** * Increment the patch version of a JVM project managed by Maven. */ function mvnIncrementPatch(p, log) { return __awaiter(this, void 0, void 0, function* () { const args = [ "build-helper:parse-version", "versions:set", // tslint:disable-next-line:max-line-length "-DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-\${parsedVersion.qualifier}", "versions:commit", ]; return sdm_1.spawnLog("./mvnw", args, { cwd: p.baseDir, log }); }); } //# sourceMappingURL=mavenSupport.js.map