Skip to content

Commit b952a14

Browse files
authored
ci: Move datamodel-codegen to a .sh script file (#194)
1 parent 4767a95 commit b952a14

File tree

4 files changed

+41
-46
lines changed

4 files changed

+41
-46
lines changed

.github/actions/spelling/allow.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ codegen
2828
coro
2929
datamodel
3030
dunders
31+
euo
3132
genai
3233
getkwargs
3334
gle

.github/workflows/update-a2a-types.yml

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,10 @@ jobs:
3636
GENERATED_FILE="./src/a2a/types.py"
3737
echo "GENERATED_FILE=$GENERATED_FILE" >> "$GITHUB_OUTPUT"
3838
39-
- name: Run datamodel-codegen
39+
- name: Generate types from schema
4040
run: |
41-
set -euo pipefail # Exit immediately if a command exits with a non-zero status
42-
43-
REMOTE_URL="https://raw.githubusercontent.com/google-a2a/A2A/refs/heads/main/specification/json/a2a.json"
44-
GENERATED_FILE="${{ steps.vars.outputs.GENERATED_FILE }}"
45-
46-
echo "Running datamodel-codegen..."
47-
uv run datamodel-codegen \
48-
--url "$REMOTE_URL" \
49-
--input-file-type jsonschema \
50-
--output "$GENERATED_FILE" \
51-
--target-python-version 3.10 \
52-
--output-model-type pydantic_v2.BaseModel \
53-
--disable-timestamp \
54-
--use-schema-description \
55-
--use-union-operator \
56-
--use-field-description \
57-
--use-default \
58-
--use-default-kwarg \
59-
--use-one-literal-as-default \
60-
--class-name A2A \
61-
--use-standard-collections \
62-
--use-subclass-enum
63-
echo "Codegen finished."
41+
chmod +x scripts/generate_types.sh
42+
./scripts/generate_types.sh "${{ steps.vars.outputs.GENERATED_FILE }}"
6443
6544
- name: Install Buf
6645
uses: bufbuild/buf-setup-action@v1

development.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

scripts/generate_types.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
3+
# Exit immediately if a command exits with a non-zero status.
4+
# Treat unset variables as an error.
5+
set -euo pipefail
6+
7+
# Check if an output file path was provided as an argument.
8+
if [ -z "$1" ]; then
9+
echo "Error: Output file path must be provided as the first argument." >&2
10+
exit 1
11+
fi
12+
13+
REMOTE_URL="https://raw.githubusercontent.com/google-a2a/A2A/refs/heads/main/specification/json/a2a.json"
14+
GENERATED_FILE="$1"
15+
16+
echo "Running datamodel-codegen..."
17+
echo " - Source URL: $REMOTE_URL"
18+
echo " - Output File: $GENERATED_FILE"
19+
20+
uv run datamodel-codegen \
21+
--url "$REMOTE_URL" \
22+
--input-file-type jsonschema \
23+
--output "$GENERATED_FILE" \
24+
--target-python-version 3.10 \
25+
--output-model-type pydantic_v2.BaseModel \
26+
--disable-timestamp \
27+
--use-schema-description \
28+
--use-union-operator \
29+
--use-field-description \
30+
--use-default \
31+
--use-default-kwarg \
32+
--use-one-literal-as-default \
33+
--class-name A2A \
34+
--use-standard-collections \
35+
--use-subclass-enum
36+
37+
echo "Codegen finished successfully."

0 commit comments

Comments
 (0)