Files
coder-templates/ci-scripts/generate-pipeline.sh
T
2025-07-09 20:41:52 -04:00

45 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
echo "stages:"
echo " - validate"
echo " - deploy"
for dir in templates/*; do
[ -d "$dir" ] || continue
name=$(basename "$dir")
display_name=$(echo "$name" | sed 's/.*/\u&/' | sed 's/-/ /g')
cat <<EOF
validate_$name:
stage: validate
image: registry.bobert.me/anthorob/coder-images:terraform-shell
script:
- terraform -chdir=$dir init -backend=false
- terraform -chdir=$dir validate
artifacts:
paths:
- $dir/.terraform.lock.hcl
expire_in: 1 hour
rules:
- changes:
- $dir/**
- coder-base/**
deploy_$name:
stage: deploy
image: registry.bobert.me/anthorob/coder-images:coder-cli
script:
- coder templates push -d $dir --name "${CI_COMMIT_SHORT_SHA}" --message "Auto-deployed from ${CI_PROJECT_PATH} on commit ${CI_COMMIT_SHORT_SHA}" --yes $name
- coder templates edit $name --display-name "$display_name Dev Environment" --description "Development environment for $name" --icon "/icon/$name.svg" --yes
dependencies:
- validate_$name
rules:
- changes:
- $dir/**
- coder-base/**
EOF
done