Skip to content

Commit 01ac162

Browse files
committed
feature(ci): adding in retries
Signed-off-by: Cortland Goffena <30168413+cmgoffena13@users.noreply.github.com>
1 parent fc2976a commit 01ac162

4 files changed

Lines changed: 147 additions & 43 deletions

File tree

.github/workflows/pr.yaml

Lines changed: 117 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,12 @@ jobs:
5757
uses: astral-sh/setup-uv@v7
5858
- name: Install dependencies
5959
run: |
60-
uv venv .venv
61-
source .venv/bin/activate
62-
make install-dev install-doc
60+
for i in 1 2 3; do
61+
uv venv .venv && source .venv/bin/activate &&
62+
make install-dev install-doc && break
63+
if [ "$i" -eq 3 ]; then exit 1; fi
64+
sleep 5
65+
done
6366
- name: Run doc tests
6467
run: |
6568
source .venv/bin/activate
@@ -89,14 +92,21 @@ jobs:
8992
- name: Install uv
9093
uses: astral-sh/setup-uv@v7
9194
- name: Install OpenJDK and ODBC
92-
run:
93-
sudo apt-get update && sudo apt-get install -y default-jdk
94-
unixodbc-dev
95+
run: |
96+
for i in 1 2 3; do
97+
sudo apt-get update &&
98+
sudo apt-get install -y default-jdk unixodbc-dev && break
99+
if [ "$i" -eq 3 ]; then exit 1; fi
100+
sleep 5
101+
done
95102
- name: Install SQLMesh dev dependencies
96103
run: |
97-
uv venv .venv
98-
source .venv/bin/activate
99-
make install-dev
104+
for i in 1 2 3; do
105+
uv venv .venv && source .venv/bin/activate &&
106+
make install-dev && break
107+
if [ "$i" -eq 3 ]; then exit 1; fi
108+
sleep 5
109+
done
100110
- name: Fix Git URL override
101111
run:
102112
git config --global --unset url."ssh://git@github.com".insteadOf ||
@@ -133,17 +143,28 @@ jobs:
133143
run: git config --global core.symlinks true
134144
- uses: actions/checkout@v7
135145
- name: Install make
136-
run: choco install make which -y
146+
run: |
147+
for ($i = 1; $i -le 3; $i++) {
148+
choco install make which -y
149+
if ($LASTEXITCODE -eq 0) { break }
150+
if ($i -eq 3) { exit 1 }
151+
Start-Sleep -Seconds 5
152+
}
137153
- name: Set up Python
138154
uses: actions/setup-python@v7
139155
with:
140156
python-version: '3.12'
141157
- name: Install SQLMesh dev dependencies
142158
run: |
143-
python -m venv venv
144-
. ./venv/Scripts/activate
145-
python.exe -m pip install --upgrade pip
146-
make install-dev
159+
for ($i = 1; $i -le 3; $i++) {
160+
python -m venv venv &&
161+
. ./venv/Scripts/activate &&
162+
python.exe -m pip install --upgrade pip &&
163+
make install-dev
164+
if ($LASTEXITCODE -eq 0) { break }
165+
if ($i -eq 3) { exit 1 }
166+
Start-Sleep -Seconds 5
167+
}
147168
- name: Run fast unit tests
148169
run: |
149170
. ./venv/Scripts/activate
@@ -209,7 +230,12 @@ jobs:
209230
key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
210231
restore-keys: pnpm-store-
211232
- name: Install dependencies
212-
run: pnpm install
233+
run: |
234+
for i in 1 2 3; do
235+
pnpm install && break
236+
if [ "$i" -eq 3 ]; then exit 1; fi
237+
sleep 5
238+
done
213239
- name: Run linters and code style checks
214240
run: pnpm run lint
215241

@@ -225,12 +251,21 @@ jobs:
225251
- uses: actions/checkout@v7
226252
- name: Install pnpm via corepack
227253
run: |
228-
npm install --global corepack@latest
229-
corepack enable
230-
corepack prepare pnpm@latest-10 --activate
231-
pnpm config set store-dir .pnpm-store
254+
for i in 1 2 3; do
255+
npm install --global corepack@latest &&
256+
corepack enable &&
257+
corepack prepare pnpm@latest-10 --activate &&
258+
pnpm config set store-dir .pnpm-store && break
259+
if [ "$i" -eq 3 ]; then exit 1; fi
260+
sleep 5
261+
done
232262
- name: Install dependencies
233-
run: pnpm install
263+
run: |
264+
for i in 1 2 3; do
265+
pnpm install && break
266+
if [ "$i" -eq 3 ]; then exit 1; fi
267+
sleep 5
268+
done
234269
- name: Build UI
235270
run: npm --prefix web/client run build
236271
- name: Run unit tests
@@ -267,11 +302,20 @@ jobs:
267302
uses: astral-sh/setup-uv@v7
268303
- name: Install SQLMesh dev dependencies
269304
run: |
270-
uv venv .venv
271-
source .venv/bin/activate
272-
make install-dev
305+
for i in 1 2 3; do
306+
uv venv .venv && source .venv/bin/activate &&
307+
make install-dev && break
308+
if [ "$i" -eq 3 ]; then exit 1; fi
309+
sleep 5
310+
done
273311
- name: Install OS-level dependencies
274-
run: ./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}"
312+
run: |
313+
for i in 1 2 3; do
314+
./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}" &&
315+
break
316+
if [ "$i" -eq 3 ]; then exit 1; fi
317+
sleep 5
318+
done
275319
- name: Run tests
276320
run: |
277321
source .venv/bin/activate
@@ -350,12 +394,21 @@ jobs:
350394
- name: Install uv
351395
uses: astral-sh/setup-uv@v7
352396
- name: Install OS-level dependencies
353-
run: ./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}"
397+
run: |
398+
for i in 1 2 3; do
399+
./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}" &&
400+
break
401+
if [ "$i" -eq 3 ]; then exit 1; fi
402+
sleep 5
403+
done
354404
- name: Install SQLMesh dev dependencies
355405
run: |
356-
uv venv .venv
357-
source .venv/bin/activate
358-
make install-dev
406+
for i in 1 2 3; do
407+
uv venv .venv && source .venv/bin/activate &&
408+
make install-dev && break
409+
if [ "$i" -eq 3 ]; then exit 1; fi
410+
sleep 5
411+
done
359412
- name: Generate database name and setup credentials
360413
run: |
361414
UUID=$(cat /proc/sys/kernel/random/uuid)
@@ -406,7 +459,12 @@ jobs:
406459
with:
407460
version: latest
408461
- name: Install dependencies
409-
run: pnpm install
462+
run: |
463+
for i in 1 2 3; do
464+
pnpm install && break
465+
if [ "$i" -eq 3 ]; then exit 1; fi
466+
sleep 5
467+
done
410468
- name: Run CI
411469
run: pnpm run ci
412470
test-vscode-e2e:
@@ -423,7 +481,12 @@ jobs:
423481
with:
424482
version: latest
425483
- name: Install dependencies
426-
run: pnpm install
484+
run: |
485+
for i in 1 2 3; do
486+
pnpm install && break
487+
if [ "$i" -eq 3 ]; then exit 1; fi
488+
sleep 5
489+
done
427490
- name: Set up Python
428491
uses: actions/setup-python@v7
429492
with:
@@ -432,14 +495,27 @@ jobs:
432495
uses: astral-sh/setup-uv@v7
433496
- name: Install python dependencies
434497
run: |
435-
python -m venv .venv
436-
source .venv/bin/activate
437-
make install-dev
498+
for i in 1 2 3; do
499+
python -m venv .venv && source .venv/bin/activate &&
500+
make install-dev && break
501+
if [ "$i" -eq 3 ]; then exit 1; fi
502+
sleep 5
503+
done
438504
- name: Install code-server
439-
run: curl -fsSL https://code-server.dev/install.sh | sh
505+
run: |
506+
for i in 1 2 3; do
507+
curl -fsSL https://code-server.dev/install.sh | sh && break
508+
if [ "$i" -eq 3 ]; then exit 1; fi
509+
sleep 5
510+
done
440511
- name: Install Playwright browsers
441512
working-directory: ./vscode/extension
442-
run: pnpm exec playwright install
513+
run: |
514+
for i in 1 2 3; do
515+
pnpm exec playwright install && break
516+
if [ "$i" -eq 3 ]; then exit 1; fi
517+
sleep 5
518+
done
443519
- name: Run e2e tests
444520
working-directory: ./vscode/extension
445521
timeout-minutes: 30
@@ -468,9 +544,12 @@ jobs:
468544
uses: astral-sh/setup-uv@v7
469545
- name: Install SQLMesh dev dependencies
470546
run: |
471-
uv venv .venv
472-
source .venv/bin/activate
473-
UV=1 make install-dev-dbt-${{ matrix.dbt-version }}
547+
for i in 1 2 3; do
548+
uv venv .venv && source .venv/bin/activate &&
549+
UV=1 make install-dev-dbt-${{ matrix.dbt-version }} && break
550+
if [ "$i" -eq 3 ]; then exit 1; fi
551+
sleep 5
552+
done
474553
- name: Run dbt tests
475554
# We can't run slow tests across all engines due to tests requiring DuckDB and old versions
476555
# of DuckDB require a version of DuckDB we no longer support

.github/workflows/release.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ jobs:
1717
with:
1818
version: latest
1919
- name: Install dependencies
20-
run: pnpm install --frozen-lockfile
20+
run: |
21+
for i in 1 2 3; do
22+
pnpm install --frozen-lockfile && break
23+
if [ "$i" -eq 3 ]; then exit 1; fi
24+
sleep 5
25+
done
2126
- name: Build UI
2227
run: pnpm --prefix web/client run build
2328
- name: Upload UI build artifact
@@ -44,7 +49,12 @@ jobs:
4449
- name: Install uv
4550
uses: astral-sh/setup-uv@v7
4651
- name: Install build dependencies
47-
run: pip install build twine setuptools_scm
52+
run: |
53+
for i in 1 2 3; do
54+
pip install build twine setuptools_scm && break
55+
if [ "$i" -eq 3 ]; then exit 1; fi
56+
sleep 5
57+
done
4858
- name: Publish Python package
4959
run: make publish
5060
env:

.github/workflows/release_extension.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ jobs:
3636
with:
3737
version: 10
3838
- name: Install dependencies
39-
run: pnpm install --frozen-lockfile
39+
run: |
40+
for i in 1 2 3; do
41+
pnpm install --frozen-lockfile && break
42+
if [ "$i" -eq 3 ]; then exit 1; fi
43+
sleep 5
44+
done
4045
- name: Update package.json version
4146
working-directory: vscode/extension
4247
run: |

.github/workflows/release_shared_js.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,25 @@ jobs:
3636
node-version: '22'
3737
registry-url: 'https://registry.npmjs.org'
3838
- name: Update npm
39-
run: npm install -g npm@latest
39+
run: |
40+
for i in 1 2 3; do
41+
npm install -g npm@latest && break
42+
if [ "$i" -eq 3 ]; then exit 1; fi
43+
sleep 5
44+
done
4045
- name: Print npm version
4146
run: npm --version
4247
- name: Install pnpm
4348
uses: pnpm/action-setup@v6
4449
with:
4550
version: 10
4651
- name: Install dependencies
47-
run: pnpm install --frozen-lockfile
52+
run: |
53+
for i in 1 2 3; do
54+
pnpm install --frozen-lockfile && break
55+
if [ "$i" -eq 3 ]; then exit 1; fi
56+
sleep 5
57+
done
4858
- name: Update package.json version
4959
working-directory: web/common
5060
run: |

0 commit comments

Comments
 (0)