Skip to content

Commit 8b30eab

Browse files
committed
feat: add async conformance tests with ASGI gateway
1 parent 2311428 commit 8b30eab

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Python Conformance CI (asgi)
2+
on:
3+
push:
4+
branches:
5+
- 'main'
6+
pull_request:
7+
8+
# Declare default permissions as read only.
9+
permissions: read-all
10+
11+
jobs:
12+
build:
13+
strategy:
14+
matrix:
15+
python: ['3.8', '3.9', '3.10', '3.11', '3.12']
16+
platform: [ubuntu-latest]
17+
runs-on: ${{ matrix.platform }}
18+
steps:
19+
- name: Harden Runner
20+
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
21+
with:
22+
disable-sudo: true
23+
egress-policy: block
24+
allowed-endpoints: >
25+
api.github.com:443
26+
files.pythonhosted.org:443
27+
github.com:443
28+
objects.githubusercontent.com:443
29+
proxy.golang.org:443
30+
pypi.org:443
31+
storage.googleapis.com:443
32+
33+
- name: Checkout code
34+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
35+
36+
- name: Setup Python
37+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
38+
with:
39+
python-version: ${{ matrix.python }}
40+
41+
- name: Install the framework with async extras
42+
run: python -m pip install -e .[async]
43+
44+
- name: Setup Go
45+
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
46+
with:
47+
go-version: '1.24'
48+
49+
- name: Run HTTP conformance tests
50+
uses: GoogleCloudPlatform/functions-framework-conformance/action@72a4f36b10f1c6435ab1a86a9ea24bda464cc262 # v1.8.6
51+
with:
52+
functionType: 'http'
53+
useBuildpacks: false
54+
validateMapping: false
55+
cmd: "'functions-framework --source tests/conformance/main.py --target write_http --signature-type http --gateway asgi'"
56+
57+
- name: Run CloudEvents conformance tests
58+
uses: GoogleCloudPlatform/functions-framework-conformance/action@72a4f36b10f1c6435ab1a86a9ea24bda464cc262 # v1.8.6
59+
with:
60+
functionType: 'cloudevent'
61+
useBuildpacks: false
62+
validateMapping: true
63+
cmd: "'functions-framework --source tests/conformance/main.py --target write_cloud_event --signature-type cloudevent --gateway asgi'"
64+
65+
- name: Run HTTP conformance tests declarative
66+
uses: GoogleCloudPlatform/functions-framework-conformance/action@72a4f36b10f1c6435ab1a86a9ea24bda464cc262 # v1.8.6
67+
with:
68+
functionType: 'http'
69+
useBuildpacks: false
70+
validateMapping: false
71+
cmd: "'functions-framework --source tests/conformance/main.py --target write_http_declarative --gateway asgi'"
72+
73+
- name: Run CloudEvents conformance tests declarative
74+
uses: GoogleCloudPlatform/functions-framework-conformance/action@72a4f36b10f1c6435ab1a86a9ea24bda464cc262 # v1.8.6
75+
with:
76+
functionType: 'cloudevent'
77+
useBuildpacks: false
78+
validateMapping: true
79+
cmd: "'functions-framework --source tests/conformance/main.py --target write_cloud_event_declarative --gateway asgi'"
80+
81+
- name: Run HTTP concurrency tests declarative
82+
uses: GoogleCloudPlatform/functions-framework-conformance/action@72a4f36b10f1c6435ab1a86a9ea24bda464cc262 # v1.8.6
83+
with:
84+
functionType: 'http'
85+
useBuildpacks: false
86+
validateConcurrency: true
87+
cmd: "'functions-framework --source tests/conformance/main.py --target write_http_declarative_concurrent --gateway asgi'"
88+
89+
# Note: Event (legacy) and Typed tests are not supported in ASGI mode

0 commit comments

Comments
 (0)