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