-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathpoe_tasks.toml
More file actions
72 lines (64 loc) · 2.6 KB
/
poe_tasks.toml
File metadata and controls
72 lines (64 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[tasks]
[tasks.clean-generated]
help = "Delete generated files, preserving hand-written movestate/helpers."
shell = """
rm -rf internal/sdk
find internal/provider/ -name 'destination_*.go' ! -name '*movestate*' ! -name '*helpers*' -delete 2>/dev/null || true
find internal/provider/ -name 'source_*.go' ! -name '*movestate*' ! -name '*helpers*' -delete 2>/dev/null || true
rm -rf internal/provider/types/
"""
[tasks.generate-spec]
help = "Generate Terraform OpenAPI spec from upstream API spec."
shell = """
mkdir -p generated
uv run scripts/generate_terraform_spec.py --output generated/api_terraform.yaml
"""
[tasks.post-generate]
help = "Patch provider registrations, preserve config across API calls, fix workspace nil pointer, mark configuration as sensitive, and tidy Go modules after Speakeasy generation."
shell = """
python3 scripts/patch_provider_registrations.py internal/provider/provider.go
python3 scripts/patch_config_preservation.py internal/provider
python3 scripts/patch_workspace_notifications.py
python3 scripts/patch_sensitive_configuration.py
go mod tidy
"""
[tasks.docs-generate]
help = "Generate Terraform provider documentation."
shell = """
go mod tidy
go mod download
go generate ./...
"""
[tasks.bin-generate]
help = "Build cross-platform provider binaries (Linux amd64 + macOS arm64)."
shell = """
mkdir -p dist
GOOS=linux GOARCH=amd64 go build -o dist/terraform-provider-airbyte_linux_amd64
GOOS=darwin GOARCH=arm64 go build -o dist/terraform-provider-airbyte_darwin_arm64
"""
[tasks.lint-spec]
help = "Lint the generated OpenAPI spec for circular references and other issues."
shell = """
echo "Running Speakeasy lint to detect circular references and other issues..."
speakeasy lint openapi -s generated/api_terraform.yaml 2>&1 | tee lint_output.txt
if grep -i "circular" lint_output.txt | grep -v "x-speakeasy-type-override"; then
echo "ERROR: Circular reference detected without x-speakeasy-type-override annotation!"
echo "Add 'x-speakeasy-type-override: any' to schemas with circular references."
rm -f lint_output.txt
exit 1
fi
rm -f lint_output.txt
echo "Lint passed - no unhandled circular references detected."
"""
[tasks.generate-code]
help = "Generate Terraform provider code from OpenAPI spec (always --skip-compile). Set VERSION env var to pin version."
shell = """
ARGS="--skip-compile"
if [ -n "$VERSION" ]; then
ARGS="$ARGS --set-version=$VERSION"
fi
speakeasy run $ARGS
"""
[tasks.generate-full]
help = "Full generation pipeline: clean, generate spec, run Speakeasy, and post-generate."
sequence = ["clean-generated", "generate-spec", "lint-spec", "generate-code", "post-generate"]