All checks were successful
Build and Publish TechDocs / build-and-publish (push) Successful in 1m5s
Change-Id: If990189cda945d2bc41eca140f5d7c3e594b69c0
98 lines
3.1 KiB
YAML
98 lines
3.1 KiB
YAML
|
|
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-for-310--007\` |" >> $GITHUB_STEP_SUMMARY
|
|
|