Skip to content

Merge branch 'ershi/tag-artifactory-publish' into 'main' #547

Merge branch 'ershi/tag-artifactory-publish' into 'main'

Merge branch 'ershi/tag-artifactory-publish' into 'main' #547

Workflow file for this run

# 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: CI
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-2019
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 CTK
uses: Jimver/[email protected]
id: cuda-toolkit
with:
sub-packages: '["cudart", "nvcc", "nvrtc_dev", "nvjitlink"]'
method: 'network'
- 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-windows
path: ./warp/bin/
build-warp-ubuntu:
runs-on: ubuntu-22.04
outputs:
artifact-url: ${{ steps.exports-header.outputs.artifact-url }}
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 CTK
uses: Jimver/[email protected]
id: cuda-toolkit
with:
sub-packages: '["cudart-dev", "nvcc", "nvrtc-dev"]'
non-cuda-sub-packages: '["libnvjitlink-dev"]'
method: 'network'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir --upgrade numpy
- name: Build Warp
run: |
python build_lib.py
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-ubuntu
path: warp/bin/
- name: Upload exports.h
uses: actions/upload-artifact@v4
id: exports-header
with:
name: exports-header
path: warp/native/exports.h
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 cache purge
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 cache purge
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-13
needs: build-warp-macos
env:
OS: macos-13
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 cache purge
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 }}
pull-request-docs:
runs-on: ubuntu-latest
needs: build-warp-ubuntu
if: ${{ github.event_name == 'pull_request' }}
outputs:
artifact-url: ${{ steps.build-docs-output.outputs.artifact-url }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Download Warp binaries
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 -r docs/requirements.txt
- name: Build Sphinx documentation
run: python build_docs.py
- name: Upload artifacts
uses: actions/upload-artifact@v4
id: build-docs-output
with:
name: build-docs-output
path: |
warp/stubs.py
docs/modules/functions.rst
check-build-docs-output:
runs-on: ubuntu-latest
needs: pull-request-docs
if: ${{ github.event_name == 'pull_request' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download build_docs.py output
uses: actions/download-artifact@v4
with:
name: build-docs-output
- name: Check functions.rst
env:
ARTIFACT_URL: ${{ needs.pull-request-docs.outputs.artifact-url }}
run: >
git diff --exit-code docs/modules/functions.rst ||
(echo "Please run build_docs.py (or download from $ARTIFACT_URL) and add docs/modules/functions.rst to your pull request." && false)
- name: Check stubs.py
env:
ARTIFACT_URL: ${{ needs.pull-request-docs.outputs.artifact-url }}
run: >
git diff --exit-code warp/stubs.py ||
(echo "Please run build_docs.py (or download from $ARTIFACT_URL) and add warp/stubs.py to your pull request." && false)
check-exports-header:
runs-on: ubuntu-latest
needs: build-warp-ubuntu
if: ${{ github.event_name == 'pull_request' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download exports.h
uses: actions/download-artifact@v4
with:
name: exports-header
path: warp/native/
- name: Check exports.h
env:
ARTIFACT_URL: ${{ needs.build-warp-ubuntu.outputs.artifact-url }}
run: >
git diff --exit-code warp/native/exports.h ||
(echo "Please run build_lib.py (or download from $ARTIFACT_URL) and add warp/native/exports.h to your pull request." && false)