gitea
This commit is contained in:
1 parent
6409cf439b
commit
0181b63f2e
4 files changed
+111
-70
No files matched your search
@@ -0,0 +1,54 @@
|
||||
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
|
||||
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: registry.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
|
||||
@@ -1,26 +0,0 @@
|
||||
stages:
|
||||
- generate
|
||||
- deploy
|
||||
|
||||
generate-child-pipeline:
|
||||
stage: generate
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk add bash sed
|
||||
script:
|
||||
- chmod +x ci-scripts/generate-pipeline.sh
|
||||
- ./ci-scripts/generate-pipeline.sh > child-pipeline.yml
|
||||
artifacts:
|
||||
paths:
|
||||
- child-pipeline.yml
|
||||
|
||||
trigger-child-pipeline:
|
||||
stage: deploy
|
||||
trigger:
|
||||
include:
|
||||
- artifact: child-pipeline.yml
|
||||
job: generate-child-pipeline
|
||||
strategy: depend
|
||||
needs:
|
||||
- job: generate-child-pipeline
|
||||
artifacts: true
|
||||
@@ -1,44 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "stages:"
|
||||
echo " - validate"
|
||||
echo " - deploy"
|
||||
|
||||
for dir in templates/*; do
|
||||
[ -d "$dir" ] || continue
|
||||
name=$(basename "$dir")
|
||||
display_name=$(echo "$name" | sed 's/.*/\u&/' | sed 's/-/ /g')
|
||||
|
||||
cat <<EOF
|
||||
|
||||
validate_$name:
|
||||
stage: validate
|
||||
image: registry.bobert.me/anthorob/coder-base:terraform
|
||||
script:
|
||||
- terraform -chdir=$dir init -backend=false
|
||||
- terraform -chdir=$dir validate
|
||||
artifacts:
|
||||
paths:
|
||||
- $dir/.terraform.lock.hcl
|
||||
expire_in: 1 hour
|
||||
rules:
|
||||
- changes:
|
||||
- $dir/**
|
||||
- base/**
|
||||
|
||||
deploy_$name:
|
||||
stage: deploy
|
||||
image: registry.bobert.me/anthorob/coder-base:cli
|
||||
script:
|
||||
- coder templates push -d $dir --name "${CI_COMMIT_SHORT_SHA}" --message "Auto-deployed from ${CI_PROJECT_PATH} on commit ${CI_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
|
||||
dependencies:
|
||||
- validate_$name
|
||||
rules:
|
||||
- changes:
|
||||
- $dir/**
|
||||
- base/**
|
||||
EOF
|
||||
|
||||
done
|
||||
@@ -0,0 +1,57 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
coder = {
|
||||
source = "coder/coder"
|
||||
}
|
||||
docker = {
|
||||
source = "kreuzwerker/docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data "coder_parameter" "python_version" {
|
||||
name = "Python Version"
|
||||
description = "Select the Python version for your workspace."
|
||||
type = "string"
|
||||
default = "3"
|
||||
|
||||
option {
|
||||
name = "Python 3"
|
||||
value = "3"
|
||||
}
|
||||
}
|
||||
|
||||
module "python_workspace" {
|
||||
source = "git::https://git.bobert.me/anthorob/coder-templates.git//base?ref=main"
|
||||
|
||||
docker_image = "registry.bobert.me/anthorob/coder-images:python${data.coder_parameter.python_version.value}"
|
||||
|
||||
language_metadata = [
|
||||
{
|
||||
display_name = "Python Version"
|
||||
key = "python_version"
|
||||
script = "echo ${data.coder_parameter.python_version.value}"
|
||||
interval = 60
|
||||
timeout = 1
|
||||
}
|
||||
]
|
||||
|
||||
language_startup_script = <<-EOT
|
||||
echo $(python --version)
|
||||
EOT
|
||||
|
||||
vscode_extensions = [
|
||||
"vscjava.vscode-java-pack",
|
||||
"redhat.java",
|
||||
"vscjava.vscode-java-debug",
|
||||
"vscjava.vscode-java-dependency",
|
||||
"vscjava.vscode-maven"
|
||||
]
|
||||
|
||||
vscode_settings = {
|
||||
"java.home" = "/usr/lib/jvm/java-21-openjdk-amd64/bin/java"
|
||||
}
|
||||
|
||||
jetbrains_ides = ["PY"]
|
||||
jetbrains_default = ["PY"]
|
||||
}
|
||||
Reference in new issue
Block a user