Skip to content

Commit

Permalink
ci: Add automatic CI job to build Docker
Browse files Browse the repository at this point in the history
- Add GHA automated job to build Docker container with latest `main`
branch for Torch-TensorRT
- Add concurrency control to avoid build clashes
- Add environment variables to reduce code duplication, improve
readability, and make the code easier to modify when versions change
- Add new container registry URL to host built containers
  • Loading branch information
gs-olive committed Aug 2, 2023
1 parent f7b03f4 commit 855e56f
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions .github/workflows/docker_builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 'Torch-TensorRT Docker Build'

# Apply workflow only to main branch
on:
pull_request:
types: [opened, synchronize, ready_for_review, review_requested, reopened]
# push:
# branches:
# - main
# - nightly

# If pushes to main are made in rapid succession,
# cancel existing docker builds and use newer commits
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true

jobs:
build:
runs-on: linux.2xlarge

# Define key environment variables
# Container name is of the form torch_tensorrt:<branch_name>
env:
DOCKER_REGISTRY: ghcr.io/pytorch/tensorrt
CONTAINER_NAME: torch_tensorrt:${{ github.ref_name }}
# TENSORRT_VERSION: 8.6
# CUDNN_VERSION: 8.8

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Docker image
env:
DOCKER_TAG: ${{ env.DOCKER_REGISTRY }}/${{ env.CONTAINER_NAME }}
run: |
TRT_VERSION=$(python3 -c "import versions; versions.tensorrt_version()")
CUDNN_VERSION=$(python3 -c "import versions; versions.cudnn_version()")
DOCKER_BUILDKIT=1 docker build --build-arg TENSORRT_VERSION=$TRT_VERSION --build-arg CUDNN_VERSION=$CUDNN_VERSION -f docker/Dockerfile --tag $DOCKER_TAG .
- name: Push Docker image
env:
DOCKER_URL: ${{ env.DOCKER_REGISTRY }}/${{ env.CONTAINER_NAME }}
run: docker push $DOCKER_URL

- name: Container Registry Cleanup
uses: actions/delete-package-versions@v4
with:
package-name: "tensorrt/torch_tensorrt"
package-type: container
min-versions-to-keep: 0
delete-only-untagged-versions: True

0 comments on commit 855e56f

Please sign in to comment.