An extension pack for an Atomist software delivery machine (SDM). See the Atomist documentation for more information on the concept of a software delivery machine and how to create and develop an SDM.
Send your project's build output to S3 using the publishToS3
goal.
In your software delivery machine project:
npm install @atomist/sdm-pack-s3
then in your machine.ts
:
import { publishToS3Goal } from "@atomist/sdm-pack-s3";
const publish = publishToS3Goal({
bucketName: "your-bucket-name",
region: "us-west-2", // use your region
filesToPublish: ["site/**/*.html", "more/files/to/publish"],
pathTranslation: (filepath, inv) => filepath, // rearrange files if necessary
pathToIndex: "site/index.html", // index file in your project
});
If you need a build to happen before the publish, call withProjectListener()
on that goal
and pass a GoalProjectListenerRegistration.
Add this publish goal to one of your goal sets.
const publishGoals = goals("publish static site to S3")
.plan(publish);
sdm.withPushRules(
whenPushSatisfies(requestsUploadToS3).setGoals(publishGoals),
);
This pack contains a goal cache implementation that uses S3. This is useful to allow your goal caching solution to scale as you scale SDM instances.
To enable use a configuration preProcessor:
preProcessors: [
async cfg => {
return _.merge(cfg, {
sdm: {
cache: {
enabled: true,
bucket: "mytest-bucket",
store: new CompressingGoalCache(new S3GoalCacheArchiveStore()),
},
},
});
},
],
Required configuration for S3GoalCacheArchiveStore
:
See the Developer Quick Start to jump straight to creating an SDM.
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.
See the Atomist developer documentation for information on how to write your own SDM features and automations.
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.