55 lines
1.8 KiB
YAML
55 lines
1.8 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: 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
|