Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
155 changes: 117 additions & 38 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,12 @@ jobs:
uses: astral-sh/setup-uv@v7
- name: Install dependencies
run: |
uv venv .venv
source .venv/bin/activate
make install-dev install-doc
for i in 1 2 3; do
uv venv .venv && source .venv/bin/activate &&
make install-dev install-doc && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run doc tests
run: |
source .venv/bin/activate
Expand Down Expand Up @@ -89,14 +92,21 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install OpenJDK and ODBC
run:
sudo apt-get update && sudo apt-get install -y default-jdk
unixodbc-dev
run: |
for i in 1 2 3; do
sudo apt-get update &&
sudo apt-get install -y default-jdk unixodbc-dev && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install SQLMesh dev dependencies
run: |
uv venv .venv
source .venv/bin/activate
make install-dev
for i in 1 2 3; do
uv venv .venv && source .venv/bin/activate &&
make install-dev && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Fix Git URL override
run:
git config --global --unset url."ssh://git@github.com".insteadOf ||
Expand Down Expand Up @@ -133,17 +143,28 @@ jobs:
run: git config --global core.symlinks true
- uses: actions/checkout@v7
- name: Install make
run: choco install make which -y
run: |
for ($i = 1; $i -le 3; $i++) {
choco install make which -y
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit 1 }
Start-Sleep -Seconds 5
}
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install SQLMesh dev dependencies
run: |
python -m venv venv
. ./venv/Scripts/activate
python.exe -m pip install --upgrade pip
make install-dev
for ($i = 1; $i -le 3; $i++) {
python -m venv venv &&
. ./venv/Scripts/activate &&
python.exe -m pip install --upgrade pip &&
make install-dev
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit 1 }
Start-Sleep -Seconds 5
}
- name: Run fast unit tests
run: |
. ./venv/Scripts/activate
Expand Down Expand Up @@ -209,7 +230,12 @@ jobs:
key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: pnpm-store-
- name: Install dependencies
run: pnpm install
run: |
for i in 1 2 3; do
pnpm install && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run linters and code style checks
run: pnpm run lint

Expand All @@ -225,12 +251,21 @@ jobs:
- uses: actions/checkout@v7
- name: Install pnpm via corepack
run: |
npm install --global corepack@latest
corepack enable
corepack prepare pnpm@latest-10 --activate
pnpm config set store-dir .pnpm-store
for i in 1 2 3; do
npm install --global corepack@latest &&
corepack enable &&
corepack prepare pnpm@latest-10 --activate &&
pnpm config set store-dir .pnpm-store && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install dependencies
run: pnpm install
run: |
for i in 1 2 3; do
pnpm install && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Build UI
run: npm --prefix web/client run build
- name: Run unit tests
Expand Down Expand Up @@ -267,11 +302,20 @@ jobs:
uses: astral-sh/setup-uv@v7
- name: Install SQLMesh dev dependencies
run: |
uv venv .venv
source .venv/bin/activate
make install-dev
for i in 1 2 3; do
uv venv .venv && source .venv/bin/activate &&
make install-dev && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install OS-level dependencies
run: ./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}"
run: |
for i in 1 2 3; do
./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}" &&
break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run tests
run: |
source .venv/bin/activate
Expand Down Expand Up @@ -350,12 +394,21 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install OS-level dependencies
run: ./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}"
run: |
for i in 1 2 3; do
./.github/scripts/install-prerequisites.sh "${{ matrix.engine }}" &&
break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install SQLMesh dev dependencies
run: |
uv venv .venv
source .venv/bin/activate
make install-dev
for i in 1 2 3; do
uv venv .venv && source .venv/bin/activate &&
make install-dev && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Generate database name and setup credentials
run: |
UUID=$(cat /proc/sys/kernel/random/uuid)
Expand Down Expand Up @@ -406,7 +459,12 @@ jobs:
with:
version: latest
- name: Install dependencies
run: pnpm install
run: |
for i in 1 2 3; do
pnpm install && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run CI
run: pnpm run ci
test-vscode-e2e:
Expand All @@ -423,7 +481,12 @@ jobs:
with:
version: latest
- name: Install dependencies
run: pnpm install
run: |
for i in 1 2 3; do
pnpm install && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Set up Python
uses: actions/setup-python@v7
with:
Expand All @@ -432,14 +495,27 @@ jobs:
uses: astral-sh/setup-uv@v7
- name: Install python dependencies
run: |
python -m venv .venv
source .venv/bin/activate
make install-dev
for i in 1 2 3; do
python -m venv .venv && source .venv/bin/activate &&
make install-dev && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install code-server
run: curl -fsSL https://code-server.dev/install.sh | sh
run: |
for i in 1 2 3; do
curl -fsSL https://code-server.dev/install.sh | sh && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Install Playwright browsers
working-directory: ./vscode/extension
run: pnpm exec playwright install
run: |
for i in 1 2 3; do
pnpm exec playwright install && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run e2e tests
working-directory: ./vscode/extension
timeout-minutes: 30
Expand Down Expand Up @@ -468,9 +544,12 @@ jobs:
uses: astral-sh/setup-uv@v7
- name: Install SQLMesh dev dependencies
run: |
uv venv .venv
source .venv/bin/activate
UV=1 make install-dev-dbt-${{ matrix.dbt-version }}
for i in 1 2 3; do
uv venv .venv && source .venv/bin/activate &&
UV=1 make install-dev-dbt-${{ matrix.dbt-version }} && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Run dbt tests
# We can't run slow tests across all engines due to tests requiring DuckDB and old versions
# of DuckDB require a version of DuckDB we no longer support
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@ jobs:
with:
version: latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: |
for i in 1 2 3; do
pnpm install --frozen-lockfile && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Build UI
run: pnpm --prefix web/client run build
- name: Upload UI build artifact
Expand All @@ -44,7 +49,12 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install build dependencies
run: pip install build twine setuptools_scm
run: |
for i in 1 2 3; do
pip install build twine setuptools_scm && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Publish Python package
run: make publish
env:
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/release_extension.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,12 @@ jobs:
with:
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: |
for i in 1 2 3; do
pnpm install --frozen-lockfile && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Update package.json version
working-directory: vscode/extension
run: |
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/release_shared_js.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,25 @@ jobs:
node-version: '22'
registry-url: 'https://registry.npmjs.org'
- name: Update npm
run: npm install -g npm@latest
run: |
for i in 1 2 3; do
npm install -g npm@latest && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Print npm version
run: npm --version
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: |
for i in 1 2 3; do
pnpm install --frozen-lockfile && break
if [ "$i" -eq 3 ]; then exit 1; fi
sleep 5
done
- name: Update package.json version
working-directory: web/common
run: |
Expand Down
Loading