Files
coder-templates/.gitea/workflows/ci.yml
T
2026-03-18 09:18:59 -04:00

85 lines
2.3 KiB
YAML

name: CI
on:
push:
paths:
- 'templates/**'
- 'base/**'
pull_request:
paths:
- 'templates/**'
- 'base/**'
workflow_dispatch:
jobs:
checkout:
name: Checkout repository
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Upload repo files as artifact
uses: actions/upload-artifact@v3
with:
name: source
path: |
base
templates
validate:
name: Validate templates
needs: checkout
runs-on: ubuntu-latest
steps:
- name: Download source artifact
uses: actions/download-artifact@v3
with:
name: source
- name: Terraform validate for each template (docker)
run: |
docker run --rm \
-v "$PWD":/workspace \
-w /workspace \
gitea.bobert.me/anthorob/coder-base:terraform sh -c '
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 }}
steps:
- name: Download source artifact
uses: actions/download-artifact@v3
with:
name: source
- name: Deploy each template (docker)
run: |
short_sha=${COMMIT_SHORT_SHA:0:7}
docker run --rm \
-v "$PWD":/workspace \
-w /workspace \
-e COMMIT_SHORT_SHA \
-e REPO \
gitea.bobert.me/anthorob/coder-base:cli sh -c '
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
'