name: CI on: push: paths: - 'templates/**' - 'base/**' pull_request: paths: - 'templates/**' - 'base/**' jobs: validate: name: Validate templates runs-on: ubuntu-latest container: image: registry.bobert.me/anthorob/coder-base:terraform@sha256:99688d11f544849944e343fd077ac363d369c09b3bd4ec428b2d6065ac019f9b steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Terraform validate for each template run: | for dir in templates/*; do [ -d "$dir" ] || continue echo "==> validating $dir" terraform -chdir="$dir" init -backend=false terraform -chdir="$dir" validate done deploy: name: Deploy templates needs: validate runs-on: ubuntu-latest container: image: registry.bobert.me/anthorob/coder-base:cli@sha256:ff76ef31f7541d3563b5abe76f0753bd775fa654abdc55d0b0a6646c08e503aa env: COMMIT_SHORT_SHA: ${{ github.sha }} REPO: ${{ github.repository }} steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Deploy each template run: | short_sha=${COMMIT_SHORT_SHA:0:7} for dir in templates/*; do [ -d "$dir" ] || continue name=$(basename "$dir") display_name=$(echo "$name" | sed 's/.*/\u&/' | sed 's/-/ /g') echo "==> deploying $name" coder templates push -d "$dir" --name "$short_sha" --message "Auto-deployed from $REPO on 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 done