2929 - name : Set up Python
3030 uses : actions/setup-python@v5
3131 with :
32- python-version : " 3.8 "
32+ python-version : " 3.12 "
3333 - name : Upgrade and install tools
3434 run : |
3535 python -m pip install -U uv
@@ -51,15 +51,19 @@ jobs:
5151 strategy :
5252 fail-fast : true
5353 matrix :
54- hatch-env : [default, sa14]
54+ include :
55+ - hatch-env : default
56+ python-version : " 3.14"
57+ - hatch-env : sa14
58+ python-version : " 3.12"
5559 steps :
5660 - uses : actions/checkout@v4
5761 with :
5862 persist-credentials : false
5963 - name : Setup up Python
6064 uses : actions/setup-python@v5
6165 with :
62- python-version : " 3.8 "
66+ python-version : ${{ matrix.python-version }}
6367 - name : Upgrade and install tools
6468 run : |
6569 python -m pip install -U uv
@@ -73,28 +77,28 @@ jobs:
7377 python -c "import snowflake.sqlalchemy; print(snowflake.sqlalchemy.__version__)"
7478
7579 test-dialect :
76- name : Test dialect ${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
80+ name : Test dialect ${{ matrix.os }}-${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}-${{ matrix.cloud-provider }}-${{ matrix.hatch-env }}
7781 needs : [lint, build-install]
7882 runs-on : ${{ matrix.os }}
7983 strategy :
8084 fail-fast : false
8185 matrix :
8286 os : [ubuntu-latest, macos-13, windows-latest]
83- python-version : ["3.8"]
8487 cloud-provider : [aws, azure, gcp]
88+ hatch-env : [default, sa14]
8589 steps :
8690 - uses : actions/checkout@v4
8791 with :
8892 persist-credentials : false
8993 - name : Set up Python
9094 uses : actions/setup-python@v5
9195 with :
92- python-version : ${{ matrix.python-version }}
96+ python-version : ${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}
9397 - name : Upgrade pip and prepare environment
9498 run : |
9599 python -m pip install -U uv
96100 python -m uv pip install -U hatch
97- python -m hatch env create default
101+ python -m hatch env create ${{ matrix.hatch-env }}
98102 - name : Setup parameters file
99103 shell : bash
100104 env :
@@ -106,40 +110,47 @@ jobs:
106110 --pinentry-mode loopback \
107111 --output tests/parameters.py \
108112 .github/workflows/parameters/parameters_${{ matrix.cloud-provider }}.py.gpg
109- - name : Run test for AWS
113+ - name : Run test for AWS (default)
114+ if : matrix.cloud-provider == 'aws' && matrix.hatch-env == 'default'
110115 run : hatch run test-dialect-aws
111- if : matrix.cloud-provider == 'aws'
112- - name : Run tests
116+ - name : Run test for AWS (sa14)
117+ if : matrix.cloud-provider == 'aws' && matrix.hatch-env == 'sa14'
118+ run : hatch run sa14:test-dialect-aws
119+ - name : Run tests (default)
120+ if : matrix.hatch-env == 'default'
113121 run : hatch run test-dialect
122+ - name : Run tests (sa14)
123+ if : matrix.hatch-env == 'sa14'
124+ run : hatch run sa14:test-dialect
114125 - uses : actions/upload-artifact@v4
115126 with :
116- name : coverage.xml_dialect-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
127+ name : coverage.xml_dialect-${{ matrix.os }}-${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}-${{ matrix.cloud-provider }}-${{ matrix.hatch-env }}
117128 path : |
118129 ./coverage.xml
119130
120131 test-dialect-compatibility :
121- name : Test dialect compatibility ${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
132+ name : Test dialect compatibility ${{ matrix.os }}-${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}-${{ matrix.cloud-provider }}-${{ matrix.hatch-env }}
122133 needs : [lint, build-install]
123134 runs-on : ${{ matrix.os }}
124135 strategy :
125136 fail-fast : false
126137 matrix :
127138 os : [ubuntu-latest, macos-13, windows-latest]
128- python-version : ["3.8"]
129139 cloud-provider : [aws, azure, gcp]
140+ hatch-env : [default, sa14]
130141 steps :
131142 - uses : actions/checkout@v4
132143 with :
133144 persist-credentials : false
134145 - name : Set up Python
135146 uses : actions/setup-python@v5
136147 with :
137- python-version : ${{ matrix.python-version }}
148+ python-version : ${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}
138149 - name : Upgrade pip and install hatch
139150 run : |
140151 python -m pip install -U uv
141152 python -m uv pip install -U hatch
142- python -m hatch env create default
153+ python -m hatch env create ${{ matrix.hatch-env }}
143154 - name : Setup parameters file
144155 shell : bash
145156 env :
@@ -151,11 +162,15 @@ jobs:
151162 --pinentry-mode loopback \
152163 --output tests/parameters.py \
153164 .github/workflows/parameters/parameters_${{ matrix.cloud-provider }}.py.gpg
154- - name : Run tests
165+ - name : Run tests (default)
166+ if : matrix.hatch-env == 'default'
155167 run : hatch run test-dialect-compatibility
168+ - name : Run tests (sa14)
169+ if : matrix.hatch-env == 'sa14'
170+ run : hatch run sa14:test-dialect-compatibility
156171 - uses : actions/upload-artifact@v4
157172 with :
158- name : coverage.xml_dialect-compatibility-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
173+ name : coverage.xml_dialect-compatibility-${{ matrix.os }}-${{ fromJson('{"default":"3.14","sa14":"3.12"}')[ matrix.hatch-env] }}-${{ matrix.cloud-provider }}-${{ matrix.hatch-env }}
159174 path : |
160175 ./coverage.xml
161176
@@ -167,7 +182,7 @@ jobs:
167182 fail-fast : false
168183 matrix :
169184 os : [ubuntu-latest, macos-13, windows-latest]
170- python-version : ["3.8 "]
185+ python-version : ["3.12 "]
171186 cloud-provider : [aws, azure, gcp]
172187 steps :
173188 - uses : actions/checkout@v4
@@ -212,7 +227,7 @@ jobs:
212227 fail-fast : false
213228 matrix :
214229 os : [ubuntu-latest, macos-13, windows-latest]
215- python-version : ["3.8 "]
230+ python-version : ["3.12 "]
216231 cloud-provider : [aws, azure, gcp]
217232 steps :
218233 - uses : actions/checkout@v4
@@ -261,7 +276,7 @@ jobs:
261276 - name : Set up Python
262277 uses : actions/setup-python@v5
263278 with :
264- python-version : " 3.8 "
279+ python-version : " 3.12 "
265280 - name : Prepare environment
266281 run : |
267282 python -m pip install -U uv
0 commit comments