Files
test-repo-174--010/.gitea/workflows/k6-apply.yml
Scaffolder ebac6d5112
All checks were successful
Build and Publish TechDocs / build-and-publish (push) Successful in 1m5s
initial commit
Change-Id: Ia66e97925d1e1ee241068a015fc64af4869ebfec
2026-04-20 16:02:01 +00:00

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-174--010\` |" >> $GITHUB_STEP_SUMMARY