Skip to content

Build and Test Warp #77

Build and Test Warp

Build and Test Warp #77

# Copyright (c) 2024 NVIDIA CORPORATION. All rights reserved.
# NVIDIA CORPORATION and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
name: Build and Test Warp
on:
workflow_call:
workflow_dispatch:
push:
tags:
- v*
branches:
- main
- release-*
schedule: # Schedule workflow only runs on the default branch
- cron: "45 9 * * *"
env:
PYTHON_VERSION: 3.11
jobs:
build-warp-windows:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy
tools/packman/packman install -l _build/target-deps/cuda cuda 11.8.0_522.06-abe3d9d7-windows-x86_64
tools/packman/packman install -l _build/host-deps/msvc msvc 2019-16.11.24
tools/packman/packman install -l _build/host-deps/winsdk winsdk 10.17763
- name: Build
run: |
python build_lib.py --cuda_path=_build/target-deps/cuda --msvc_path=_build/host-deps/msvc/VC/Tools/MSVC/14.29.30133 --sdk_path=_build/host-deps/winsdk
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-windows
path: ./warp/bin/
build-warp-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy
- name: Build Warp
run: |
tools/packman/packman install -l _build/target-deps/cuda cuda 11.8.0_520.61-d8963068-linux-x86_64
python build_lib.py --cuda_path=_build/target-deps/cuda
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-ubuntu
path: ./warp/bin/
build-warp-macos:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy
- name: Build
run: |
python build_lib.py
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-macos
path: ./warp/bin/
test-warp-windows:
runs-on: windows-latest
needs: build-warp-windows
env:
OS: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Download Warp build artifact
uses: actions/download-artifact@v4
with:
name: build-artifact-windows
path: ./warp/bin/
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy coverage[toml] usd-core
pip install --no-cache-dir .
- name: Run Tests
run: python -m warp.tests --junit-report-xml rspec.xml --coverage --coverage-xml coverage.xml -s autodetect
- name: Test Summary
uses: test-summary/[email protected]
with:
paths: "rspec.xml"
show: "fail"
if: always()
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
env_vars: OS,PYTHON_VERSION
files: ./coverage.xml
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
test-warp-ubuntu:
runs-on: ubuntu-latest
needs: build-warp-ubuntu
env:
OS: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Download Warp build artifact
uses: actions/download-artifact@v4
with:
name: build-artifact-ubuntu
path: ./warp/bin/
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy coverage[toml] usd-core
pip install --no-cache-dir .
- name: Run Tests
run: python -m warp.tests --junit-report-xml rspec.xml --coverage --coverage-xml coverage.xml -s autodetect
- name: Test Summary
uses: test-summary/[email protected]
with:
paths: "rspec.xml"
show: "fail"
if: always()
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
env_vars: OS,PYTHON_VERSION
files: ./coverage.xml
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
test-warp-macos:
runs-on: macos-latest
needs: build-warp-macos
env:
OS: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Download Warp build artifact
uses: actions/download-artifact@v4
with:
name: build-artifact-macos
path: ./warp/bin/
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy coverage[toml] usd-core
pip install --no-cache-dir .
- name: Run Tests
run: python -m warp.tests --junit-report-xml rspec.xml --coverage --coverage-xml coverage.xml -s autodetect
- name: Test Summary
uses: test-summary/[email protected]
with:
paths: "rspec.xml"
show: "fail"
if: always()
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
env_vars: OS,PYTHON_VERSION
files: ./coverage.xml
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}