Skip to content

Nv-Ingest Nightly PyPi Wheel Publish #392

Nv-Ingest Nightly PyPi Wheel Publish

Nv-Ingest Nightly PyPi Wheel Publish #392

name: Nv-Ingest Nightly PyPi Wheel Publish
# Trigger for pull requests and pushing to main
on:
schedule:
# Runs every day at 11:30PM (UTC)
- cron: "30 23 * * *"
workflow_dispatch:
inputs:
environment:
description: 'Source branch to build wheel from'
required: true
default: 'main'
VERSION:
description: 'Version string for the release (e.g., 25.4.0)'
required: true
RELEASE_TYPE:
description: 'Whether the build is a nightly or release'
required: true
type: choice
options:
- dev
- release
jobs:
build:
runs-on: linux-large-disk
container:
image: rapidsai/ci-conda:cuda12.5.1-ubuntu22.04-py3.12
steps:
- name: Determine source branch and release type to use for run
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Setting build source to ${{ github.event.inputs.environment }}"
echo "ENVIRONMENT=${{ github.event.inputs.environment }}" >> $GITHUB_ENV
else
echo "Setting build source to main. DEFAULT"
echo "ENVIRONMENT=main" >> $GITHUB_ENV
fi
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Setting RELEASE_TYPE to ${{ github.event.inputs.RELEASE_TYPE }}"
echo "RELEASE_TYPE=${{ github.event.inputs.RELEASE_TYPE }}" >> $GITHUB_ENV
else
echo "Setting RELEASE_TYPE to dev. DEFAULT"
echo "RELEASE_TYPE=dev" >> $GITHUB_ENV
fi
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Setting VERSION to ${{ github.event.inputs.VERSION }}"
echo "VERSION=${{ github.event.inputs.VERSION }}" >> $GITHUB_ENV
else
echo "Setting VERSION to $(date +'%Y.%m.%d'). DEFAULT"
echo "VERSION=$(date +'%Y.%m.%d')" >> $GITHUB_ENV
fi
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ env.ENVIRONMENT }}
- name: Install build dependencies
run: |
pip install build twine
- name: Build nv-ingest-api wheel
run: |
cd api && NV_INGEST_RELEASE_TYPE=${{ env.RELEASE_TYPE }} NV_INGEST_VERSION=${{ env.VERSION }} python -m build
- name: Build nv-ingest-client wheel
run: |
cd client && NV_INGEST_RELEASE_TYPE=${{ env.RELEASE_TYPE }} NV_INGEST_VERSION=${{ env.VERSION }} python -m build
- name: Build nv-ingest service wheel
run: |
cd src && NV_INGEST_RELEASE_TYPE=${{ env.RELEASE_TYPE }} NV_INGEST_VERSION=${{ env.VERSION }} python -m build
- name: Publish wheels to Artifactory
env:
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
run: |
twine upload --repository-url $ARTIFACTORY_URL -u $ARTIFACTORY_USERNAME -p $ARTIFACTORY_PASSWORD api/dist/* \
&& twine upload --repository-url $ARTIFACTORY_URL -u $ARTIFACTORY_USERNAME -p $ARTIFACTORY_PASSWORD client/dist/* \
&& twine upload --repository-url $ARTIFACTORY_URL -u $ARTIFACTORY_USERNAME -p $ARTIFACTORY_PASSWORD src/dist/*