pub const GAJI_SCRIPTS: &[(&str, &str)] = &[
("gha:dev", "gaji dev"),
("gha:build", "gaji build"),
("gha:watch", "gaji dev --watch"),
];
pub const GAJI_DEV_DEPS: &[(&str, &str)] = &[("tsx", "^4.0.0")];
pub const TSCONFIG_TEMPLATE: &str = r#"{
"compilerOptions": {
"target": "ES2020",
"module": "ES2020",
"moduleResolution": "bundler",
"lib": ["ES2020"],
"outDir": "./dist",
"rootDir": ".",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["workflows/**/*"],
"exclude": ["node_modules", "dist"]
}
"#;
pub const EXAMPLE_WORKFLOW_TEMPLATE: &str = r#"// Example CI workflow - Generated by gaji init
import { getAction, Job, Workflow } from "../generated/index.js";
const checkout = getAction("actions/checkout@v5");
const setupNode = getAction("actions/setup-node@v4");
const build = new Job("ubuntu-latest")
.addStep(checkout({
name: "Checkout code",
}))
.addStep(setupNode({
name: "Setup Node.js",
with: {
"node-version": "20",
},
}))
.addStep({
name: "Install dependencies",
run: "npm ci",
})
.addStep({
name: "Run tests",
run: "npm test",
});
const workflow = new Workflow({
name: "CI",
on: {
push: {
branches: ["main"],
},
pull_request: {
branches: ["main"],
},
},
}).addJob("build", build);
workflow.build("ci");
"#;
pub const GITIGNORE_SECTION: &str =
"\n# gaji generated files\ngenerated/\n.gaji-cache.json\n.gaji.local.toml\n";