second first commit
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
# SDK Compatibility Tests - Task Runner Configuration
|
||||
# Run `just` to see available commands
|
||||
|
||||
set export
|
||||
set dotenv-load
|
||||
|
||||
# Environment defaults
|
||||
FLOCI_ENDPOINT := env('FLOCI_ENDPOINT', 'http://localhost:4566')
|
||||
AWS_ACCESS_KEY_ID := env('AWS_ACCESS_KEY_ID', 'test')
|
||||
AWS_SECRET_ACCESS_KEY := env('AWS_SECRET_ACCESS_KEY', 'test')
|
||||
AWS_DEFAULT_REGION := env('AWS_DEFAULT_REGION', 'us-east-1')
|
||||
|
||||
# Default recipe - list all available commands
|
||||
default:
|
||||
@just --list
|
||||
|
||||
# Run all SDK tests sequentially (continues on failure)
|
||||
test-all:
|
||||
#!/usr/bin/env bash
|
||||
set +e
|
||||
failed=0
|
||||
for suite in python typescript awscli java go; do
|
||||
echo "=== Running $suite tests ==="
|
||||
just test-$suite || failed=1
|
||||
done
|
||||
exit $failed
|
||||
|
||||
# Run Python SDK tests (JUnit XML output)
|
||||
[working-directory: 'sdk-test-python']
|
||||
test-python:
|
||||
pytest tests/ --junit-xml=test-results/junit.xml
|
||||
|
||||
# Run TypeScript SDK tests (JUnit XML output via vitest junit reporter)
|
||||
[working-directory: 'sdk-test-node']
|
||||
test-typescript:
|
||||
npm test
|
||||
|
||||
# Run AWS CLI tests (JUnit XML output via bats)
|
||||
test-awscli:
|
||||
./lib/run-bats-with-junit.sh sdk-test-awscli/test/ sdk-test-awscli/test-results/junit.xml
|
||||
|
||||
# Run Java SDK tests (JUnit XML output via Maven Surefire)
|
||||
[working-directory: 'sdk-test-java']
|
||||
test-java:
|
||||
mvn test -q
|
||||
|
||||
# Run Go SDK tests (JUnit XML output via gotestsum)
|
||||
[working-directory: 'sdk-test-go']
|
||||
test-go:
|
||||
gotestsum --junitfile test-results.xml ./tests/... ./internal/testutil/...
|
||||
|
||||
# Install all test dependencies
|
||||
setup: setup-python setup-typescript setup-awscli setup-java setup-go
|
||||
|
||||
# Install Python test dependencies
|
||||
[working-directory: 'sdk-test-python']
|
||||
setup-python:
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Install TypeScript test dependencies
|
||||
[working-directory: 'sdk-test-node']
|
||||
setup-typescript:
|
||||
npm install
|
||||
|
||||
# Install Java test dependencies
|
||||
[working-directory: 'sdk-test-java']
|
||||
setup-java:
|
||||
mvn dependency:resolve -q
|
||||
|
||||
# Install Go test dependencies
|
||||
[working-directory: 'sdk-test-go']
|
||||
setup-go:
|
||||
go mod download
|
||||
go install gotest.tools/gotestsum@latest
|
||||
|
||||
# Install AWS CLI test dependencies (uses shared bats from repo root)
|
||||
setup-awscli: setup-bats
|
||||
@echo "AWS CLI test dependencies ready (using shared bats)"
|
||||
|
||||
# Install bats-core and helpers for compat tests
|
||||
setup-bats:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
mkdir -p lib
|
||||
if [ ! -d "lib/bats-core" ]; then
|
||||
echo "Cloning bats-core..."
|
||||
git clone --depth 1 https://github.com/bats-core/bats-core.git lib/bats-core
|
||||
fi
|
||||
if [ ! -d "lib/bats-support" ]; then
|
||||
echo "Cloning bats-support..."
|
||||
git clone --depth 1 https://github.com/bats-core/bats-support.git lib/bats-support
|
||||
fi
|
||||
if [ ! -d "lib/bats-assert" ]; then
|
||||
echo "Cloning bats-assert..."
|
||||
git clone --depth 1 https://github.com/bats-core/bats-assert.git lib/bats-assert
|
||||
fi
|
||||
echo "Bats dependencies installed!"
|
||||
|
||||
# Run CDK compatibility tests (JUnit XML output via bats)
|
||||
test-cdk:
|
||||
./lib/run-bats-with-junit.sh compat-cdk/test/ compat-cdk/test-results/junit.xml
|
||||
|
||||
# Run Terraform compatibility tests (one JUnit XML per bats file, files run concurrently)
|
||||
test-terraform:
|
||||
./compat-terraform/run.sh
|
||||
|
||||
# Run OpenTofu compatibility tests (one JUnit XML per bats file, files run concurrently)
|
||||
test-opentofu:
|
||||
./compat-opentofu/run.sh
|
||||
|
||||
# Run all IaC compatibility tests (continues on failure)
|
||||
test-compat:
|
||||
#!/usr/bin/env bash
|
||||
set +e
|
||||
failed=0
|
||||
for suite in cdk terraform opentofu; do
|
||||
echo "=== Running $suite tests ==="
|
||||
just test-$suite || failed=1
|
||||
done
|
||||
exit $failed
|
||||
|
||||
# Remove build artifacts and dependencies
|
||||
clean:
|
||||
rm -rf sdk-test-python/__pycache__ sdk-test-python/.pytest_cache sdk-test-python/test-results
|
||||
rm -rf sdk-test-node/node_modules sdk-test-node/dist sdk-test-node/test-results
|
||||
rm -rf sdk-test-java/target
|
||||
rm -rf sdk-test-go/test-results.xml
|
||||
rm -rf lib/bats-core lib/bats-support lib/bats-assert
|
||||
Reference in New Issue
Block a user