Skip to content

[gomod] Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go from 1.36.10-20250912141014-52f32327d4b0.1 to 1.36.10-20251209175733-2a1774d88802.1 #1103

[gomod] Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go from 1.36.10-20250912141014-52f32327d4b0.1 to 1.36.10-20251209175733-2a1774d88802.1

[gomod] Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go from 1.36.10-20250912141014-52f32327d4b0.1 to 1.36.10-20251209175733-2a1774d88802.1 #1103

---
# SPDX-FileCopyrightText: (C) 2025 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
name: Component Tests
on:
pull_request:
types: [labeled]
schedule:
- cron: "0 0 * * *" # Run every day at midnight
workflow_dispatch: # Run on manual trigger
inputs:
run-component-tests:
description: 'Run component tests'
required: true
type: boolean
default: false
emf-branch:
description: 'The branch, tag or SHA to checkout EMF'
required: true
type: string
default: main
permissions:
contents: read
jobs:
component-tests:
name: Deploy Kind Orchestrator and Run Component Tests
if: |
${{ inputs.run-component-tests || github.event_name == 'schedule' || github.event.label.name == 'run-component-tests' }}
runs-on: ubuntu-24.04-16core-64GB # ubuntu-24.04-4core-16GB ubuntu-22.04-32core-128GB & ubuntu-24.04-16core-64GB
timeout-minutes: 60
env:
ORCH_DEFAULT_PASSWORD: ${{ secrets.ORCH_DEFAULT_PASSWORD }}
CODER_DIR: ${{ github.workspace }}
steps:
- name: Deploy Kind Orchestrator
id: deploy-kind-orchestrator
uses: open-edge-platform/edge-manageability-framework/.github/actions/deploy_kind@d9f30b46d8b4b94c0506935d8ad9a7f5b82d657f
timeout-minutes: 45
with:
orch_version: ${{ inputs.emf-branch || 'main' }}
orch_password: ${{ env.ORCH_DEFAULT_PASSWORD }}
# Skip Docker Hub credentials since they're not available
# docker_username: ${{ secrets.SYS_DOCKERHUB_USERNAME }}
# docker_password: ${{ secrets.SYS_DOCKERHUB_RO }}
token: ${{ secrets.SYS_ORCH_GITHUB }}
deployment_type: 'all'
env:
ORCH_DEFAULT_PASSWORD: ${{ secrets.ORCH_DEFAULT_PASSWORD }}
- name: Configure kubectl for Kind cluster
run: |
# First check if kubectl is already configured by the EMF action
echo "Current kubectl configuration..."
if kubectl cluster-info 2>/dev/null; then
echo "✅ kubectl is already configured by EMF action!"
kubectl get nodes
else
echo "kubectl not configured, trying to configure manually..."
# List all Kind clusters to see what's available
echo "Available Kind clusters:"
kind get clusters
# Try to find the cluster name automatically
CLUSTER_NAME=$(kind get clusters | head -n 1)
if [ -z "$CLUSTER_NAME" ]; then
echo "❌ No Kind clusters found!"
exit 1
fi
echo "Using Kind cluster: $CLUSTER_NAME"
# Configure kubectl for the Kind cluster
kind get kubeconfig --name "$CLUSTER_NAME" > /tmp/kubeconfig
export KUBECONFIG=/tmp/kubeconfig
echo "KUBECONFIG=/tmp/kubeconfig" >> $GITHUB_ENV
# Verify connection
echo "Verifying kubectl connection..."
kubectl cluster-info
kubectl get nodes
fi
echo "kubectl configuration successful!"
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.24.9'
cache: true
- name: Checkout app-orch-catalog repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
repository: open-edge-platform/app-orch-catalog
path: app-orch-catalog
token: ${{ secrets.SYS_ORCH_GITHUB }}
persist-credentials: false
- name: Get current git hash of the app-orch-catalog PR
id: get-git-hash-catalog
working-directory: app-orch-catalog
env:
GIT_HASH_CHARTS: ${{ github.event.pull_request.head.sha }}
run: echo "GIT_HASH_CHARTS=$GIT_HASH_CHARTS" >> "$GITHUB_ENV"
- name: Setup users and project/org
shell: bash
run: |
mage tenantUtils:createDefaultMtSetup
echo "Orch org/project/users created!"
echo "Project uID:"
kubectl get projects.project -o json | jq -r ".items[0].status.projectStatus.uID"
- name: Build binaries
working-directory: app-orch-catalog
run: |
echo "Updating Go module dependencies..."
go mod tidy
echo "Building binaries..."
make build
# Install versions of the build tools that are different from what is in
# the runner. These must match the .tool-versions file in the app-orch-catalog repo.
- name: Install catalog build tools
run: |
asdf install kind 0.29.0
asdf install kubectl 1.33.2
asdf install yq 4.45.4
- name: Redeploy and Rebuild app-orch-catalog
working-directory: app-orch-catalog
run: |
make coder-redeploy
make coder-rebuild
- name: Describe app-orch-catalog
run: kubectl describe deployments.app -n orch-app app-orch-catalog
- name: Wait for app-orch-catalog pod to be Running
run: |
MAX_RETRIES=30
count=0
while [ $count -lt $MAX_RETRIES ]; do
POD_NAME=$(kubectl get pods -n orch-app -l app.kubernetes.io/instance=app-orch-catalog -o jsonpath='{.items[0].metadata.name}')
POD_STATUS=$(kubectl get pod $POD_NAME -n orch-app -o jsonpath='{.status.phase}')
READY_STATUS=$(kubectl get pod $POD_NAME -n orch-app -o jsonpath='{.status.containerStatuses[0].ready}')
if [ "$POD_STATUS" == "Running" ] && [ "$READY_STATUS" == "true" ]; then
echo "Pod $POD_NAME is Running and Ready."
break
else
echo "Pod $POD_NAME status: $POD_STATUS, Ready: $READY_STATUS"
count=$((count+1))
sleep 10
fi
done
if [ $count -eq $MAX_RETRIES ]; then
echo "Pod did not reach Running state within time limit."
kubectl describe pod $POD_NAME -n orch-app
exit 1
fi
- name: Run Catalog Component Tests
working-directory: app-orch-catalog/test
env:
PATH: ${{ env.PATH }}:${{ env.GOPATH }}/bin
run: |
echo "Updating Go module dependencies..."
go mod tidy
echo "Running component tests..."
make component-tests
echo "Component tests done!"
- name: Report
uses: becheran/go-testreport@main
with:
input: app-orch-catalog/test/test-report.json
output: app-orch-catalog/test/${{ github.event_name }}-${{ github.event.number }}-test-report.html
template: app-orch-catalog/test/template.html
# Several diagnostic commands to run in case of failure. Collect all the argo
# application state and describe all the pods.
- name: list all argo applications
if: failure()
run: |
kubectl get applications.argoproj.io -o wide -A
- name: describe all argo applications
if: failure()
run: |
kubectl describe applications.argoproj.io -A
- name: get all pods
if: failure()
run: |
kubectl get pods -A -o wide
- name: describe all pods
if: failure()
run: |
kubectl describe pods -A
- name: Upload Test Report
if: always()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: test-report
path: app-orch-catalog/test/${{ github.event_name }}-${{ github.event.number }}-test-report.html
retention-days: 14
# collect app orch catalog logs in case of failure
# TODO: now sure how/where these artifacts are collected. Not able to see them in github UI.
- name: Get app-orch-catalog diagnostic information
if: failure()
id: get-app-orch-catalog-diag-info
run: |
kubectl logs -n orch-app -l app=app-orch-catalog -c app-orch-catalog-server --tail=-1 > app-orch-catalog-server.log || echo "No current logs for app-orch-catalog-server"
kubectl logs -n orch-app -l app=app-orch-catalog -c app-orch-catalog-rest-proxy --tail=-1 > app-orch-catalog-rest-proxy.log || echo "No current logs for app-orch-catalog-rest-proxy"