Skip to content

Commit

Permalink
Merge branch 'master' into fix-cookbook-images
Browse files Browse the repository at this point in the history
  • Loading branch information
scottire authored Oct 3, 2024
2 parents 56218bb + bf1a3b2 commit 6f1a784
Show file tree
Hide file tree
Showing 200 changed files with 1,375 additions and 520 deletions.
88 changes: 88 additions & 0 deletions .github/workflows/check-which-tests-to-run.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Check which tests to run

on:
workflow_call:
outputs:
weave_query_tests:
value: ${{ jobs.check.outputs.weave_query_tests }}
weave_js_tests:
value: ${{ jobs.check.outputs.weave_js_tests }}
trace_server_tests:
value: ${{ jobs.check.outputs.trace_server_tests }}

env:
WEAVE_QUERY_PATHS: 'weave_query/'
WEAVE_JS_PATHS: 'weave-js/'
TRACE_SERVER_PATHS: 'weave/trace_server/'
# Everything else is implicitly trace SDK

jobs:
check:
runs-on: ubuntu-latest
outputs:
weave_query_tests: ${{ steps.weave_query.outputs.run_tests }}
weave_js_tests: ${{ steps.weave_js.outputs.run_tests }}
trace_server_tests: ${{ steps.trace_server.outputs.run_tests }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
fetch-tags: true
ref: ${{ github.head_ref }}
- name: Get changed files
run: |
# Fetch all branches
git fetch --all
# Determine the base branch and current commit
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
# For pull requests
BASE_BRANCH="${{ github.base_ref }}"
CURRENT_COMMIT="${{ github.event.pull_request.head.sha }}"
else
# For pushes
BASE_BRANCH=$(git remote show origin | sed -n '/HEAD branch/s/.*: //p')
CURRENT_COMMIT="${{ github.sha }}"
fi
echo "Base branch is $BASE_BRANCH"
# Find the common ancestor
MERGE_BASE=$(git merge-base origin/$BASE_BRANCH $CURRENT_COMMIT)
# Get changed files
changed_files=$(git diff --name-only $MERGE_BASE $CURRENT_COMMIT)
echo "Changed files:"
echo "$changed_files"
echo "changed_files<<EOF" >> $GITHUB_ENV
echo "$changed_files" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- id: weave_query
name: Weave Query Checks
run: |
for path in ${{ env.WEAVE_QUERY_PATHS }}; do
if echo "$changed_files" | grep -q "$path"; then
echo "run_tests=true" >> $GITHUB_OUTPUT
exit 0
fi
done
echo "run_tests=false" >> $GITHUB_OUTPUT
- id: weave_js
name: Weave JS Checks
run: |
for path in ${{ env.WEAVE_JS_PATHS }}; do
if echo "$changed_files" | grep -q "$path"; then
echo "run_tests=true" >> $GITHUB_OUTPUT
exit 0
fi
done
echo "run_tests=false" >> $GITHUB_OUTPUT
- id: trace_server
name: Weave Trace Server Checks
run: |
for path in ${{ env.TRACE_SERVER_PATHS }}; do
if echo "$changed_files" | grep -q "$path"; then
echo "run_tests=true" >> $GITHUB_OUTPUT
exit 0
fi
done
echo "run_tests=false" >> $GITHUB_OUTPUT
7 changes: 5 additions & 2 deletions .github/workflows/notify-wandb-core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ name: Notify wandb/core
on:
push:
branches:
- "**"
- '**'
workflow_dispatch:

jobs:
check-which-tests-to-run:
uses: ./.github/workflows/check-which-tests-to-run.yaml
notify-wandb-core:
needs: check-which-tests-to-run
runs-on: ubuntu-latest
steps:
- name: Repository dispatch
Expand All @@ -19,4 +22,4 @@ jobs:
token: ${{ secrets.WANDB_CORE_ACCESS_TOKEN }}
repository: wandb/core
event-type: weave-package-updated
client-payload: '{"ref_name": "${{ github.ref_name }}", "sha": "${{ github.sha }}"}'
client-payload: '{"ref_name": "${{ github.ref_name }}", "sha": "${{ github.sha }}", "run_weave_js_tests": ${{ needs.check-which-tests-to-run.outputs.weave_js_tests }}, "run_weave_query_tests": ${{ needs.check-which-tests-to-run.outputs.weave_query_tests }}, "run_trace_server_tests": ${{ needs.check-which-tests-to-run.outputs.trace_server_tests }}}'
66 changes: 56 additions & 10 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,45 +12,66 @@ on:
push:

jobs:
check-which-tests-to-run:
uses: ./.github/workflows/check-which-tests-to-run.yaml

# ==== Query Service Jobs ====
build-container-query-service:
name: Build Legacy (Query Service) test container
timeout-minutes: 30
runs-on: [self-hosted, builder]
# runs-on: ubuntu-latest
outputs:
build_needed: ${{ steps.build_check.outputs.build_needed }}
env:
REGISTRY: us-east4-docker.pkg.dev/weave-support-367421/weave-images
needs: check-which-tests-to-run

# if: github.ref == 'refs/heads/master' || needs.check-which-tests-to-run.outputs.weave_query_tests
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2

- name: Check if build is needed
id: build_check
run: |
if [[ "${{ github.ref }}" == "refs/heads/master" || "${{ needs.check-which-tests-to-run.outputs.weave_query_tests }}" == "true" ]]; then
echo "Build is needed"
echo "build_needed=true" >> $GITHUB_OUTPUT
else
echo "Build is not needed"
echo "build_needed=false" >> $GITHUB_OUTPUT
fi
- name: Login to Docker Hub
if: steps.build_check.outputs.build_needed == 'true'
uses: docker/login-action@v2
with:
registry: us-east4-docker.pkg.dev
username: _json_key
password: ${{ secrets.gcp_sa_key }}

# this script is hardcoded to build for linux/amd64
- name: Prune docker cache
if: steps.build_check.outputs.build_needed == 'true'
run: docker system prune -f
- name: Build legacy (query sevice) unit test image

- name: Build legacy (query service) unit test image
if: steps.build_check.outputs.build_needed == 'true'
run: python3 weave/docker/docker_build.py build_deps weave-test-python-query-service builder . weave_query/Dockerfile.ci.test

test-query-service:
name: Legacy (Query Service) Python unit tests
timeout-minutes: 15 # do not raise! running longer than this indicates an issue with the tests. fix there.
needs:
- check-which-tests-to-run
- build-container-query-service
# runs-on: [self-hosted, gke-runner]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
job_num: [0, 1]
# runs-on: ubuntu-latest
container: us-east4-docker.pkg.dev/weave-support-367421/weave-images/weave-test-python-query-service:${{ github.sha }}
container: ${{ needs.build-container-query-service.outputs.build_needed == 'true' && format('us-east4-docker.pkg.dev/weave-support-367421/weave-images/weave-test-python-query-service:{0}', github.sha) || null }}
services:
wandbservice:
image: us-central1-docker.pkg.dev/wandb-production/images/local-testcontainer:master
Expand All @@ -65,14 +86,25 @@ jobs:
- '8083:8083'
- '9015:9015'
options: --health-cmd "curl --fail http://localhost:8080/healthz || exit 1" --health-interval=5s --health-timeout=3s
outputs:
tests_should_run: ${{ steps.test_check.outputs.tests_should_run }}
steps:
# - uses: datadog/[email protected]
# with:
# api_key: ${{ secrets.DD_API_KEY }}
- uses: actions/checkout@v2
- name: Check if tests should run
id: test_check
run: |
if [[ "${{ github.ref }}" == "refs/heads/master" || "${{ needs.check-which-tests-to-run.outputs.weave_query_tests }}" == "true" ]]; then
echo "Tests should run"
echo "tests_should_run=true" >> $GITHUB_OUTPUT
else
echo "Tests should not run"
echo "tests_should_run=false" >> $GITHUB_OUTPUT
fi
- name: Verify wandb server is running
if: steps.test_check.outputs.tests_should_run == 'true'
run: curl -s http://wandbservice:8080/healthz
- name: Run Legacy (Query Service) Python Unit Tests
if: steps.test_check.outputs.tests_should_run == 'true'
env:
DD_SERVICE: weave-python
DD_ENV: ci
Expand Down Expand Up @@ -108,16 +140,30 @@ jobs:
weavejs-lint-compile:
name: WeaveJS Lint and Compile
runs-on: ubuntu-latest
# runs-on: [self-hosted, gke-runner]
needs:
- check-which-tests-to-run
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check if lint and compile should run
id: check_run
run: |
if [[ "${{ github.ref }}" == "refs/heads/master" || "${{ needs.check-which-tests-to-run.outputs.weave_js_tests }}" == "true" ]]; then
echo "Lint and compile should run"
echo "should_lint_and_compile=true" >> $GITHUB_OUTPUT
else
echo "Lint and compile should not run"
echo "should_lint_and_compile=false" >> $GITHUB_OUTPUT
fi
- uses: actions/setup-node@v1
if: steps.check_run.outputs.should_lint_and_compile == 'true'
with:
node-version: '18.x'
- run: |
- name: Run WeaveJS Lint and Compile
if: steps.check_run.outputs.should_lint_and_compile == 'true'
run: |
set -e
cd weave-js
yarn install --frozen-lockfile
Expand Down
35 changes: 17 additions & 18 deletions .github/workflows/wandb-core-updated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,25 @@ jobs:
update-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout weave
uses: actions/checkout@v3
with:
ref: master
fetch-depth: 1
- name: Checkout wandb/core
uses: actions/checkout@v3
with:
path: .wandb_core
submodules: false
fetch-depth: 1
repository: wandb/core
ref: refs/heads/master
token: ${{ secrets.WANDB_CORE_PAT }}
- name: Placeholder
run: git status
- name: Checkout weave
uses: actions/checkout@v3
with:
ref: master
fetch-depth: 1
- name: Checkout wandb/core
uses: actions/checkout@v3
with:
path: .wandb_core
submodules: false
fetch-depth: 1
repository: wandb/core
ref: refs/heads/master
token: ${{ secrets.WANDB_CORE_PAT }}
- name: Placeholder
run: git status
# - name: Create working branch
# run: git checkout -b bot/update-frontend
# - name: Rebuild frontend
# run: build_frontend.sh
# run: weave_query/scripts/build_frontend.sh
# env:
# WANDB_CORE: ${{ env.GITHUB_WORKSPACE }}/.wandb_core

5 changes: 2 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@ repos:
- id: mypy
additional_dependencies:
[types-pkg-resources==0.1.3, types-all, wandb>=0.15.5]
# You have to exclude in 3 places. 1) here. 2) mypi.ini exclude, 3) follow_imports = skip for each module in mypy.ini
# exclude: (.*pyi$)|(weave/legacy)|(weave/tests)
# Note: You have to update pyproject.toml[tool.mypy] too!
args: ['--config-file=pyproject.toml']
exclude: (.*pyi$)|(weave_query)|(weave/tests)|(weave/trace_server/tests)|(weave/conftest.py)|(weave/trace/tests)|(integration_test)|(weave/tests/trace)|(weave/conftest.py)|(weave/trace_server/tests)|(examples)|(weave/integrations)|(weave/docker)
exclude: (.*pyi$)|(weave_query)|(tests)|(examples)|(weave/docker)
# This is legacy Weave when we were building a notebook product - should be removed
- repo: local
hooks:
Expand Down
Loading

0 comments on commit 6f1a784

Please sign in to comment.