Skip to content

Add working CI

Add working CI #12

Workflow file for this run

name: CI
on:
workflow_dispatch:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- run: uv run pytest --ignore=tests/test_e2e.py
e2e:
if: vars.E2E_ENABLED == 'true'
runs-on: ubuntu-latest
env:
UCODE_TEST_WORKSPACE: ${{ secrets.UCODE_TEST_WORKSPACE }}
DATABRICKS_HOST: ${{ secrets.UCODE_TEST_WORKSPACE }}
DATABRICKS_CLIENT_ID: ${{ secrets.DATABRICKS_CLIENT_ID }}
DATABRICKS_CLIENT_SECRET: ${{ secrets.DATABRICKS_CLIENT_SECRET }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- uses: databricks/setup-cli@bdb89f81c11a5bd647fd55b585b7c396ec68a25a # v1.0.0
- run: uv tool install .
- name: Probe M2M auth (surfaces the CLI's real error if M2M is broken)
run: |
set +e
echo "=== databricks --version ==="
databricks --version
echo
echo "=== env presence (values redacted) ==="
for v in DATABRICKS_HOST DATABRICKS_CLIENT_ID DATABRICKS_CLIENT_SECRET DATABRICKS_CONFIG_FILE DATABRICKS_AUTH_TYPE; do
if [ -n "${!v:-}" ]; then echo "$v=<set, ${#:-?} chars>"; else echo "$v=<unset>"; fi
done
echo
echo "=== ~/.databrickscfg presence ==="
ls -la ~/.databrickscfg 2>&1 || echo "no databrickscfg"
echo
echo "=== databricks auth token --host \$DATABRICKS_HOST ==="
databricks auth token --host "$DATABRICKS_HOST" --output json
echo "exit=$?"
echo
echo "=== databricks current-user me (uses M2M if env vars set) ==="
databricks current-user me 2>&1 | head -5
echo "exit=$?"
# Redirect stdin so any interactive `databricks auth login --no-browser`
# fallback EOFs instead of hanging the runner. CI must rely solely on
# the M2M env vars; if those don't yield a token, fail fast.
- run: uv run pytest tests/test_e2e.py -v < /dev/null