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