initial commit
All checks were successful
Build and Publish TechDocs / build-and-publish (push) Successful in 59s
All checks were successful
Build and Publish TechDocs / build-and-publish (push) Successful in 59s
Change-Id: I84f1c77dbf214ee51341ec8443810c0711a16d83
This commit is contained in:
97
.gitea/workflows/k6-apply.yml
Normal file
97
.gitea/workflows/k6-apply.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
|
||||
name: Apply k6 Load Test ConfigMap
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Deploy to Humanitec"]
|
||||
types:
|
||||
- completed
|
||||
branches: [ dev, staging, prod ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
namespace:
|
||||
description: 'Target namespace override'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
AZURE_FEDERATED_TOKEN_FILE: /var/run/secrets/azure/tokens/azure-identity-token
|
||||
|
||||
jobs:
|
||||
apply-k6:
|
||||
name: Apply k6 ConfigMap
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
(github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') ||
|
||||
github.event_name == 'workflow_dispatch'
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Azure CLI
|
||||
run: command -v az &>/dev/null || curl -sL https://aka.ms/InstallAzureCLIDeb | bash
|
||||
|
||||
- name: Azure login (OIDC)
|
||||
run: |
|
||||
az login \
|
||||
--service-principal \
|
||||
--username "$AZURE_CLIENT_ID" \
|
||||
--tenant "$AZURE_TENANT_ID" \
|
||||
--federated-token "$(cat $AZURE_FEDERATED_TOKEN_FILE)"
|
||||
echo "✓ Azure login successful"
|
||||
|
||||
- name: Get AKS credentials
|
||||
run: |
|
||||
AKS_RG=$(az aks list --query "[0].resourceGroup" -o tsv)
|
||||
AKS_NAME=$(az aks list --query "[0].name" -o tsv)
|
||||
az aks get-credentials -g "$AKS_RG" -n "$AKS_NAME" --overwrite-existing
|
||||
echo "✓ AKS credentials configured"
|
||||
|
||||
- name: Determine target namespace
|
||||
id: ns
|
||||
run: |
|
||||
# Manual override takes priority
|
||||
MANUAL_NS="${{ github.event.inputs.namespace }}"
|
||||
if [ -n "$MANUAL_NS" ]; then
|
||||
echo "NAMESPACE=$MANUAL_NS" >> $GITHUB_ENV
|
||||
echo "✓ Using manual namespace: $MANUAL_NS"
|
||||
exit 0
|
||||
fi
|
||||
# Derive from branch
|
||||
BRANCH="${{ github.event.workflow_run.head_branch }}"
|
||||
if [ -z "$BRANCH" ]; then
|
||||
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
fi
|
||||
case "$BRANCH" in
|
||||
staging) NAMESPACE="staging" ;;
|
||||
prod) NAMESPACE="prod" ;;
|
||||
*) NAMESPACE="dev" ;;
|
||||
esac
|
||||
echo "NAMESPACE=$NAMESPACE" >> $GITHUB_ENV
|
||||
echo "✓ Target namespace: $NAMESPACE (from branch: $BRANCH)"
|
||||
|
||||
- name: Apply k6 ConfigMap
|
||||
run: |
|
||||
if [ ! -f k6/configmap.yaml ]; then
|
||||
echo "⚠ k6/configmap.yaml not found — skipping"
|
||||
exit 0
|
||||
fi
|
||||
kubectl apply -f k6/configmap.yaml -n "$NAMESPACE"
|
||||
echo "✓ k6 ConfigMap applied to namespace $NAMESPACE"
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
echo "### ⚡ k6 Load Test ConfigMap Applied" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| | |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "|---|---|" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| **Namespace** | \`$NAMESPACE\` |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| **ConfigMap** | \`k6-test-test-alex-1\` |" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
Reference in New Issue
Block a user