-
Notifications
You must be signed in to change notification settings - Fork 65
ci: run integration tests in 2 batches #391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -104,8 +104,15 @@ jobs: | |
| uses: ./.github/actions/setup-ubuntu | ||
| - run: make shellcheck | ||
|
|
||
| integration-tests: | ||
| integration-tests-batch1: | ||
| uses: ./.github/workflows/integration-tests.yaml | ||
| with: | ||
| e2e_target: test-e2e-integration-batch1 | ||
|
|
||
| integration-tests-batch2: | ||
| uses: ./.github/workflows/integration-tests.yaml | ||
| with: | ||
| e2e_target: test-e2e-integration-batch2 | ||
|
|
||
|
Comment on lines
+107
to
116
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: # Find and inspect the integration-tests.yaml workflow
find .github -name "*.yaml" -o -name "*.yml" | head -20Repository: akash-network/provider Length of output: 314 🏁 Script executed: # Check if integration-tests.yaml exists and read relevant sections
if [ -f ".github/workflows/integration-tests.yaml" ]; then
echo "=== integration-tests.yaml exists ==="
wc -l ".github/workflows/integration-tests.yaml"
echo ""
echo "=== Lines around 24 (KIND_NAME) ==="
sed -n '15,35p' ".github/workflows/integration-tests.yaml"
echo ""
echo "=== Inputs section ==="
rg -A 20 "^inputs:" ".github/workflows/integration-tests.yaml" | head -40
fiRepository: akash-network/provider Length of output: 678 🏁 Script executed: # Check the tests.yaml file for how it calls the reusable workflow
if [ -f ".github/workflows/tests.yaml" ]; then
echo "=== Lines 107-116 from tests.yaml ==="
sed -n '107,116p' ".github/workflows/tests.yaml"
echo ""
echo "=== Full context of integration-tests calls ==="
sed -n '100,140p' ".github/workflows/tests.yaml"
fiRepository: akash-network/provider Length of output: 1395 🏁 Script executed: # Search for any kind_name or KIND_NAME usage across workflows
echo "=== Searching for kind_name or KIND_NAME in workflows ==="
rg -i "kind.?name" .github/workflows/ -A 2 -B 2Repository: akash-network/provider Length of output: 904 🏁 Script executed: # Get full structure of integration-tests.yaml to understand jobs
echo "=== Full integration-tests.yaml with job names ==="
cat -n ".github/workflows/integration-tests.yaml" | grep -E "^\s*[0-9]+\s+(jobs:|[a-z-]+:)" | head -40Repository: akash-network/provider Length of output: 1633 🏁 Script executed: # Get the inputs section and full job list
echo "=== Integration-tests.yaml - inputs and jobs section ==="
sed -n '1,80p' ".github/workflows/integration-tests.yaml" | cat -nRepository: akash-network/provider Length of output: 3486 🏁 Script executed: # Search for all job definitions and their conditions in integration-tests.yaml
echo "=== All jobs in integration-tests.yaml ==="
rg "^ [a-z-]+:" ".github/workflows/integration-tests.yaml" -A 5 | head -80Repository: akash-network/provider Length of output: 158 🏁 Script executed: # Get complete job names from integration-tests.yaml
echo "=== All job definitions in integration-tests.yaml ==="
rg "^ [a-z0-9-]+:$" ".github/workflows/integration-tests.yaml"Repository: akash-network/provider Length of output: 137 🏁 Script executed: # Check the full file to see structure
echo "=== Line count and structure ==="
wc -l ".github/workflows/integration-tests.yaml"
echo ""
echo "=== Section headers (jobs, needs, etc) ==="
grep -n "^jobs:\|^ [a-z-]*:\|^ if:\|^ needs:" ".github/workflows/integration-tests.yaml" | head -50Repository: akash-network/provider Length of output: 206 🏁 Script executed: # Get the lines where e2e_target is used
echo "=== Where e2e_target is used in integration-tests.yaml ==="
rg -n "e2e_target" ".github/workflows/integration-tests.yaml" -B 2 -A 2Repository: akash-network/provider Length of output: 481 🏁 Script executed: # Check if kind_name input exists in integration-tests.yaml
echo "=== Check inputs section of integration-tests.yaml ==="
sed -n '5,15p' ".github/workflows/integration-tests.yaml"
echo ""
echo "=== Search for any kind_name or cluster isolation in integration-tests.yaml ==="
rg -i "kind.name|cluster.name" ".github/workflows/integration-tests.yaml" -B 3 -A 3Repository: akash-network/provider Length of output: 934 🏁 Script executed: # Check if there's any unique naming strategy or runner isolation config
echo "=== Check for runner labels or self-hosted config ==="
rg "runs-on:|self-hosted" ".github/workflows/" -B 2 -A 2 | head -60Repository: akash-network/provider Length of output: 2545 🏁 Script executed: # Check if github.run_id or other unique vars are used anywhere for isolation
echo "=== Check for unique run identifiers used in Kind setup ==="
rg "github\.(run_id|run_number|job)" ".github/workflows/integration-tests.yaml" -B 2 -A 2Repository: akash-network/provider Length of output: 125 🏁 Script executed: # Final confirmation: kind_name does not exist as input
echo "=== All inputs in integration-tests.yaml ==="
sed -n '5,13p' ".github/workflows/integration-tests.yaml"Repository: akash-network/provider Length of output: 296 Parallel batches collide on hardcoded Kind cluster name. Both batch jobs invoke Add a Suggested mitigationIn kind_name:
description: 'Kind cluster name'
required: false
default: 'kube'
type: stringThen update the crd-e2e job to use it instead of the hardcoded value, and in integration-tests-batch1:
uses: ./.github/workflows/integration-tests.yaml
with:
e2e_target: test-e2e-integration-batch1
kind_name: kube-batch1
integration-tests-batch2:
uses: ./.github/workflows/integration-tests.yaml
with:
e2e_target: test-e2e-integration-batch2
kind_name: kube-batch2🤖 Prompt for AI Agents |
||
| dispatch-release: | ||
| runs-on: ubuntu-latest | ||
|
|
@@ -118,7 +125,8 @@ jobs: | |
| - coverage | ||
| - yamlcheck | ||
| - shellcheck | ||
| - integration-tests | ||
| - integration-tests-batch1 | ||
| - integration-tests-batch2 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validate and quote
e2e_targetbefore shell execution.Line [153] executes a raw workflow input in bash. That allows command injection if an unexpected value is passed via
workflow_call.🔒 Proposed fix
🤖 Prompt for AI Agents