import { Workflow } from 'cdkactions';
import { DjangoProject, ReactProject, DeployJob } from '@pennlabs/kraken';
const workflow = new Workflow(this, 'workflow', {
name: 'Build and Deploy',
on: 'push',
});
// API backend
const api = new DjangoProject(workflow, {
id: 'api',
projectName: 'api',
path: 'services/api',
imageName: 'myapp-api',
});
// Admin dashboard
const admin = new ReactProject(workflow, {
id: 'admin',
path: 'frontends/admin',
imageName: 'myapp-admin',
});
// Public website
const website = new ReactProject(workflow, {
id: 'website',
path: 'frontends/website',
imageName: 'myapp-website',
});
// Mobile API backend
const mobileApi = new DjangoProject(workflow, {
id: 'mobile-api',
projectName: 'mobile_api',
path: 'services/mobile-api',
imageName: 'myapp-mobile-api',
});
// Deploy after all services are built
new DeployJob(workflow, {}, {
needs: [
api.publishJobId,
admin.publishJobId,
website.publishJobId,
mobileApi.publishJobId,
],
});