Skip to content

Commit

Permalink
Add some basic GitHub workflows and configs
Browse files Browse the repository at this point in the history
  • Loading branch information
shi-eric committed May 23, 2024
1 parent 3542781 commit 5827816
Show file tree
Hide file tree
Showing 5 changed files with 277 additions and 0 deletions.
212 changes: 212 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# 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:

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 --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 --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 --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 --upgrade numpy coverage[toml] usd-core
pip install .
- 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 --upgrade numpy coverage[toml] usd-core
pip install .
- 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 --upgrade numpy coverage[toml] usd-core
pip install .
- 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 }}
18 changes: 18 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 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.

# Nightly workflow only runs on the default branch
name: Nightlies

on:
schedule:
- cron: "45 9 * * *" # 7AM UTC, 12AM PST, 3AM EST

jobs:
build-and-test:
uses: ./.github/workflows/build-and-test.yml
secrets: inherit
23 changes: 23 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 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: Pull Request

on:
push:
branches:
- "pull-request/[0-9]+"
pull_request: # Remove when using nv-gha-runners

concurrency:
group: ${{ github.workflow }}-on-${{ github.event_name }}-from-${{ github.ref_name }}
cancel-in-progress: true

jobs:
build-and-test:
uses: ./.github/workflows/build-and-test.yml
secrets: inherit
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
ci:
autofix_commit_msg: |
[pre-commit.ci] auto code formatting
autofix_prs: false
autoupdate_branch: ""
autoupdate_commit_msg: "[pre-commit.ci] pre-commit autoupdate"
autoupdate_schedule: quarterly
skip: []
submodules: false

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
Expand Down
14 changes: 14 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
coverage:
status:
project: # More options at https://docs.codecov.com/docs/commit-status
default:
target: auto #default
threshold: "5"
base: auto

comment:
behavior: default
require_changes: false # if true: only post the comment if coverage changes
hide_project_coverage: false # [true :: only show coverage on the git diff aka patch coverage]]
require_base: false # [true :: must have a base report to post]
require_head: true # [true :: must have a head report to post]

0 comments on commit 5827816

Please sign in to comment.