Files
coder-templates/.gitea/workflows/ci.yml
T

61 lines
1.9 KiB
YAML

name: CI
on:
push:
branches:
- main
paths:
- 'templates/**'
- 'base/**'
workflow_dispatch:
jobs:
validate:
name: Validate templates
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Terraform
uses: hashicorp/setup-terraform@5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85 # 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
env:
COMMIT_SHORT_SHA: ${{ github.sha }}
REPO: ${{ github.repository }}
CODER_URL: ${{ secrets.CODER_URL }}
CODER_SESSION_TOKEN: ${{ secrets.CODER_SESSION_TOKEN }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install Coder CLI
run: |
curl -fsSL https://coder.com/install.sh | sh
- 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" \
--url "$CODER_URL" --token "$CODER_SESSION_TOKEN"
coder templates edit "$name" --display-name "$display_name Dev Environment" --description "Development environment for $name" --icon "/icon/$name.svg" --yes \
--url "$CODER_URL" --token "$CODER_SESSION_TOKEN"
done