@atomist/atomist-internal-sdm
TypeScript icon, indicating that this package has built-in type declarations

0.3.93 • Public • Published

@atomist/atomist-internal-sdm

atomist sdm goals npm version

The Atomist software delivery machine (SDM) for delivering internal Atomist services.

See the Atomist documentation for more information on what SDMs are and what they can do for you using the Atomist API for software.

Push Rules and Goals

goals

Prerequisites

See the Atomist Developer documentation for instructions on setting up your development environment. Briefly, you will need Git, Node.js, and the Atomist CLI installed and properly configured on your system. For this specific SDM, you will also need Java installed. With these installed, you can run this SDM in local mode.

To run this SDM for your team, you will need an Atomist workspace. See the Atomist Getting Started Guide for instructions on how to get an Atomist workspace and connect it to your source code repositories, continuous integration, chat platform, etc.

How we deliver

Push Rules

  • supports the concept of some projects only configuring goals for certain workspaces (workspace white-listing)
  • we skip most npm projects unless explicitly configured to add them
  • "No material change" - we have specific rules for detecting no material change on clojure projects
  • "Build a project with lein and npm parts" - we support setting goals across Leiningen and Npm when they're both present
  • "Build a Clojure Service with Leiningen" - Leiningen and Docker on the master branch
  • Leiningen and Docker not on the master branch skips kubernetes
  • "Build a Clojure Library with Leiningen" - Leiningen libraries on the master branch automatically publish
  • Leiningen libraries on other branches do not publish
  • "Simple node based docker service" - Node.js services with docker containers automatically update k8 specs on master branch
  • Non-master branch Node services do not update k8 specs

Packs

  1. LeinSupport - Goals for our leiningen projects
  2. fingerprintSupport - we use Fingerprints to manage shared traits like leiningen and npm dependencies
  3. goalScheduling, goalState, and githubGoalStatus are enabled

Events and Ingestors

  • PodDeployments - we have a custom ingestion for new PodDeployments
  • HandleRunningPods - we have a custom event handler for the above ingestion

Commands

  • "kick service" - does nothing
  • "make some noise" - generates some Pushes on Repos
  • "testinate" - run platform integration tests
  • "update spec" - update a k8 spec to rollback a change
  • "enable deploy"
  • "disable deploy"

Goals

  • NodeDockerBuild - our assumptions for dockerizing simple Node.js builds
  • neoApolloDockerBuild - some additional rules for
  • deployToStaging - goal without approval
  • deployToProd - goal with approval

Fingerprints

  • docker-base-image
  • elk-logback
  • leiningen dependencies
  • public defn bodies

Running

See the Atomist Developer documentation for details on how to run this SDM. Briefly, once the prerequisites are met on your system you can start the SDM in local mode with the following command:

$ atomist start --local

The Atomist documentation for running SDMs has instructions for connecting and SDM to the Atomist API for software and running an SDM in various environments.

Support

General support questions should be discussed in the #support channel in the Atomist community Slack workspace.

If you find a problem, please create an issue.

Development

You will need to install Node.js to build and test this project.

Build and test

Install dependencies.

$ npm install

Use the build package script to compile, test, lint, and build the documentation.

$ npm run build

Release

Releases are handled via the Atomist SDM. Just press the 'Approve' button in the Atomist dashboard or Slack.


Created by Atomist. Need Help? Join our Slack workspace.

Package Sidebar

Install

npm i @atomist/atomist-internal-sdm

Weekly Downloads

1

Version

0.3.93

License

Apache-2.0

Unpacked Size

4.98 MB

Total Files

69

Last publish

Collaborators

  • neilprosser
  • atomist-bot
  • cdupuis
  • slimslenderslacks