Compare commits

...

11 Commits

Author SHA1 Message Date
c217176b83 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 11s
2025-07-15 10:03:49 +00:00
a170343092 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 13s
2025-07-15 09:55:33 +00:00
220aee3924 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 1m11s
2025-06-25 15:24:07 +00:00
825a4e4118 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 14s
2025-06-18 17:20:08 +00:00
0d6c9b7002 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 21s
2025-06-18 10:56:28 +00:00
d4462527bf Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 14s
2025-06-18 10:43:13 +00:00
929ef65717 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 14s
2025-06-18 10:30:46 +00:00
62c0e2f4d4 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 1m13s
2025-06-16 17:30:08 +00:00
f04db5c0a3 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 13s
2025-06-13 19:04:20 +00:00
81e17c6216 Update deployment.json
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 20s
2025-06-13 18:53:45 +00:00
1291f08715 staging
All checks were successful
Continuous Deployment Workflow / deploy (push) Successful in 23s
2025-06-13 18:40:05 +00:00
2 changed files with 131 additions and 44 deletions

View File

@ -1,8 +1,8 @@
name: Continuous Deployment Workflow
on:
'on':
push:
paths:
- "deployment.json"
- deployment.json
branches:
- '*'
branches-ignore:
@ -13,21 +13,36 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Parse Deployment JSON
id: parse_deployment
run: |
run: >
deployment_json=$(cat deployment.json)
echo "namespace=$(echo "$deployment_json" | jq -r '.namespace')" >> $GITHUB_ENV
echo "name=$(echo "$deployment_json" | jq -r '.name')" >> $GITHUB_ENV
echo "repoName=$(echo "$deployment_json" | jq -r '.repoName')" >> $GITHUB_ENV
echo "branchName=$(echo "$deployment_json" | jq -r '.branchName')" >> $GITHUB_ENV
echo "version=$(echo "$deployment_json" | jq -r '.version')" >> $GITHUB_ENV
echo "shortVersion=\"$(echo "$deployment_json" | jq -r '.version' | cut -c1-10)\"" >> $GITHUB_ENV
echo "secrets=$(echo "$deployment_json" | jq -r '.environment.secrets[]' | paste -sd ",")" >> $GITHUB_ENV # Updated
echo "variables=$(echo "$deployment_json" | jq -r '.environment.variables[]' | paste -sd ",")" >> $GITHUB_ENV # Updated
echo "resources=$(echo "$deployment_json" | jq -c '.resources')" >> $GITHUB_ENV
echo "namespace=$(echo "$deployment_json" | jq -r '.namespace')" >>
$GITHUB_ENV
echo "name=$(echo "$deployment_json" | jq -r '.name')" >> $GITHUB_ENV
echo "repoName=$(echo "$deployment_json" | jq -r '.repoName')" >>
$GITHUB_ENV
echo "branchName=$(echo "$deployment_json" | jq -r '.branchName')" >>
$GITHUB_ENV
echo "version=$(echo "$deployment_json" | jq -r '.version')" >>
$GITHUB_ENV
echo "shortVersion=\"$(echo "$deployment_json" | jq -r '.version' |
cut -c1-10)\"" >> $GITHUB_ENV
echo "secrets=$(echo "$deployment_json" | jq -r
'.environment.secrets[]' | paste -sd ",")" >> $GITHUB_ENV # Updated
echo "variables=$(echo "$deployment_json" | jq -r
'.environment.variables[]' | paste -sd ",")" >> $GITHUB_ENV # Updated
echo "resources=$(echo "$deployment_json" | jq -c '.resources')" >>
$GITHUB_ENV
- name: Generate values.yaml
env:
CI_USER: ${{ secrets.CI_USER }}
@ -41,69 +56,110 @@ jobs:
branchName: ${{ env.branchName }}
version: ${{ env.version }}
shortVersion: ${{ env.shortVersion }}
run: |
KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG_CONTENT }}
run: >
set -euo pipefail
echo "namespace: $namespace" > values.yaml
echo "name: $name" >> values.yaml
echo "repoName: $repoName" >> values.yaml
echo "branchName: $branchName" >> values.yaml
echo "version: $version" >> values.yaml
echo "shortVersion: $shortVersion" >> values.yaml
echo "environment:" >> values.yaml
# Process secrets
echo " secrets:" >> values.yaml
IFS=',' read -ra SECRET_NAMES <<< "$secrets"
for secret_name in "${SECRET_NAMES[@]}"; do
secret_value="${!secret_name}"
echo " - name: $secret_name" >> values.yaml
echo " value: \"$secret_value\"" >> values.yaml
done
# echo " - name: CI_USER" >> values.yaml
# echo " value: \"$CI_USER\"" >> values.yaml
# echo " - name: CI_USER_TOKEN" >> values.yaml
# echo " value: \"$CI_USER_TOKEN\"" >> values.yaml
# Process variables
# echo " variables:" >> values.yaml
# IFS=',' read -ra VARIABLE_NAMES <<< "$variables"
# for variable_name in "${VARIABLE_NAMES[@]}"; do
# variable_value="${!variable_name}" # Access the actual value dynamically
# variable_value="${!variable_name}" # Access the actual value
dynamically
# echo " - name: $variable_name" >> values.yaml
# echo " value: \"$variable_value\"" >> values.yaml
# done
echo " variables:" >> values.yaml
echo " - name: REPO_NAME" >> values.yaml
echo " value: \"$repoName\"" >> values.yaml
echo " - name: BRANCH_NAME" >> values.yaml
echo " value: \"$branchName\"" >> values.yaml
echo " - name: VERSION" >> values.yaml
echo " value: \"$version\"" >> values.yaml
echo " - name: NAMESPACE" >> values.yaml
echo " value: \"$namespace\"" >> values.yaml
echo " - name: FLOWX_ENGINE_ADDRESS" >> values.yaml
echo " value: centurion-workflow-frontend.default.svc.cluster.local:7233" >> values.yaml
echo " value:
centurion-workflow-frontend.default.svc.cluster.local:7233" >>
values.yaml
# Process resources
echo "resources:" >> values.yaml
echo "$resources" | jq -r '
. as $root |
" limits:\n cpu: \($root.limits.cpu)\n memory: \($root.limits.memory)\n requests:\n cpu: \($root.requests.cpu)\n memory: \($root.requests.memory)"
' >> values.yaml
echo "Generated values.yaml:"
cat values.yaml
echo "Generated values.yaml:"
cat values.yaml
- name: Install Helm
run: |
if ! command -v helm >/dev/null 2>&1; then
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
fi
- name: Ensure kubectl is Installed
run: |
if ! command -v kubectl >/dev/null 2>&1; then
@ -111,7 +167,6 @@ jobs:
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
fi
- name: Set Up Kubeconfig
run: |
echo "${{ secrets.KUBECONFIG_CONTENT }}" > kubeconfig
@ -120,7 +175,6 @@ jobs:
kubectl config use-context ci-cd-user-context
echo "KUBECONFIG=$(pwd)/kubeconfig" >> $GITHUB_ENV
kubectl config view
- name: Deploy with Helm
env:
CI_USER: ${{ secrets.CI_USER }}
@ -129,44 +183,74 @@ jobs:
repoName: ${{ env.repoName }}
branchName: ${{ env.branchName }}
version: ${{ env.version }}
run: |
run: >
set -euo pipefail
# Sanitize and construct the release name
RELEASE_NAME=$(echo "${repoName}-${branchName}" | tr '_' '-' | tr '[:upper:]' '[:lower:]')
RELEASE_NAME=$(echo "${repoName}-${branchName}" | tr '_' '-' | tr
'[:upper:]' '[:lower:]')
# Ensure the release name meets Helm's naming conventions
if ! echo "$RELEASE_NAME" | grep -Eq '^[a-z]([-a-z0-9]*[a-z0-9])?$'; then
if ! echo "$RELEASE_NAME" | grep -Eq '^[a-z]([-a-z0-9]*[a-z0-9])?$';
then
echo "Error: Release name '$RELEASE_NAME' is invalid."
exit 1
fi
# Login to the OCI registry
echo "$CI_USER_TOKEN" | helm registry login centurion-version-control.default.svc.cluster.local:3000 \
echo "$CI_USER_TOKEN" | helm registry login
centurion-version-control.default.svc.cluster.local:3000 \
--username "$CI_USER" --password-stdin --insecure
pwd
ls -l
chmod 644 values.yaml
yq eval values.yaml
# Pull the chart from the OCI registry
helm pull oci://centurion-version-control.default.svc.cluster.local:3000/centurion/helm/block-worker \
helm pull
oci://centurion-version-control.default.svc.cluster.local:3000/centurion/helm/block-worker
\
--version 0.1.4 \
--plain-http \
--untar
# helm upgrade --install "$RELEASE_NAME" \
# ./block-worker \
# --version 0.1.4 \
# --namespace "$namespace" \
# --values values.yaml \
# --plain-http \
# --debug \
# --wait \
# --create-namespace
# --timeout 300s
{
helm upgrade --install "$RELEASE_NAME" \
./block-worker \

View File

@ -1,21 +1,24 @@
{
"namespace": "default",
"name": "name",
"version": "sha",
"repoName": "repoName",
"branchName": "branchName",
"environment": {
"secrets": [],
"variables": []
"namespace": "production",
"name": "flows/sequence-1",
"version": "f0fa374e62767a3462f9faa69679819eacf0b4d2",
"repoName": "flows",
"branchName": "sequence-1",
"environment": {
"secrets": [
"CI_USER",
"CI_USER_TOKEN"
],
"variables": []
},
"resources": {
"limits": {
"cpu": "500m",
"memory": "512Mi"
},
"resources": {
"limits": {
"cpu": "500m",
"memory": "512Mi"
},
"requests": {
"cpu": "250m",
"memory": "256Mi"
}
"requests": {
"cpu": "250m",
"memory": "256Mi"
}
}
}
}