Fluent GitLab CI is a deno module for generating GitLab CI configuration files easily and fluently.
import { GitlabCI, Job } from "https://deno.land/x/fluent_gitlab_ci/mod.ts";
const build = new Job().stage("build").script(`
echo "Compiling the code..."
echo "Compile complete."
`);
const unitTest = new Job().stage("test").script(`
echo "Running unit tests... This will take about 60 seconds."
sleep 60
echo "Code coverage is 90%"
`);
const lint = new Job().stage("test").script(`
echo "Linting code... This will take about 10 seconds."
sleep 10
echo "No lint issues found."
`);
const deploy = new Job().stage("deploy").script(`
echo "Deploying application..."
echo "Application successfully deployed."
`);
const gitlabci = new GitlabCI()
.stages(["build", "test", "deploy"])
.addJob("build-job", build)
.addJob("unit-test-job", unitTest)
.addJob("lint-test-job", lint)
.addJob("deploy-job", deploy);
console.log(gitlabci.toString());
gitlabci.write();
See examples for more details.