Atomist SDM to build and deploy demo projects


Keywords
atomist, automation, demo, github, kubernetes, sdm
License
Apache-2.0
Install
npm install @atomist/demo-sdm@1.0.0-goal-signing-demo.20210316231645

Documentation

@atomist/demo-sdm

npm version

Atomist software delivery machine for demo projects.

Software delivery machines enable you to control your delivery process in code. Think of it as an API for your software delivery. See the Atomist documentation for more information on the concept of a software delivery machine and how to create and develop an SDM.

Demos

GeneratorCommand: Project Creation from seed

To create a project from seed use create spring in a DM with the atomist bot. Go through the creation and click the button to create a linked channel.

Notice that repo gets tagged automatically by the SDM.

CodeTransform: Add Dockerfile

When joining the newly created and linked channel, you'll see a button called Add Dockerfile.

Clicking this button with run a CodeTransform and push to a new branch. When the build on this branch succeeds, a PR will be created. Once the goal set finishes successfully, the PR will get merged automatically.

This is a build-aware CodeTransform with an auto-merge PR.

CodeInspection: Import java.io.File

Edit any Java source in your repo and add an import for import java.io.File;. This will be flagged in the Cloud Native code inspection. Notice the newly created issue for this violation.

Once you remove the import again, the created issue gets closed and the body updated.

Autofix: Add @Autowired to a constructor

Edit the Application class and add the @ComponentScan annotation to the class. Don't forget to also add the import to import org.springframework.context.annotation.ComponentScan;

The autofix will remove the unnecessary annotation.

Deployment: Deploy to k8

Once the Dockerfile PR is merged into master, the app will get deployed to our demo cluster. It will go straight to testing namespace. Click the link next to the goal to navigate to the running app.

Deployment to production can get triggered by starting the deploy to production goal.

On successful deploy to production, the version in the pom.xml will get incremented too.

Env-based Issue Labels

Make sure to deploy your service at least once to the env, before running this demo.

Create a new issue in the your repo; make a commit referencing the issue with fixes #1 in your commit message.

Let the build complete and see the app getting deployed to the testing namespace. Once it is running, a new label env:gke-int-demo:testing should be added to your issue.

Getting started

See the Developer Quick Start to jump straight to creating an SDM.

Contributing

Contributions to this project from community members are encouraged and appreciated. Please review the Contributing Guidelines for more information. Also see the Development section in this document.

Code of conduct

This project is governed by the Code of Conduct. You are expected to act in accordance with this code by participating. Please report any unacceptable behavior to code-of-conduct@atomist.com.

Documentation

Please see docs.atomist.com for developer documentation.

Connect

Follow @atomist and The Composition blog related to SDM.

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.