55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'templates/**'
|
|
- 'base/**'
|
|
pull_request:
|
|
paths:
|
|
- 'templates/**'
|
|
- 'base/**'
|
|
|
|
jobs:
|
|
validate:
|
|
name: Validate templates
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: gitea.bobert.me/anthorob/coder-base:terraform
|
|
steps:
|
|
- uses: actions/checkout@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: gitea.bobert.me/anthorob/coder-base:cli
|
|
env:
|
|
COMMIT_SHORT_SHA: ${{ github.sha }}
|
|
REPO: ${{ github.repository }}
|
|
steps:
|
|
- uses: actions/checkout@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
|