Skip to content

Nightly Pipeline

Nightly Pipeline #54

Workflow file for this run

name: Nightly Pipeline
on:
workflow_dispatch:
inputs:
mode:
description: 'release/nightly, default is nightly'
required: true
default: 'nightly'
type: choice
options:
- nightly
- release
workflow_call:
inputs:
mode:
description: 'release/nightly, default is nightly'
type: string
required: true
default: 'nightly'
schedule:
- cron: '0 13 * * *'
permissions:
id-token: write
contents: read
jobs:
# build:
# uses: ./.github/workflows/docker-nightly-publish.yml
# secrets: inherit
# with:
# mode: ${{ inputs.mode || 'nightly' }}
get_image_tag_suffix:
outputs:
test_image_tag_suffix: ${{ steps.get_image_tag_suffix.test_image_tag_suffix }}
runs-on: ubuntu-latest
steps:
- name: get_image_tag_suffix
id: get_image_tag_suffix
run: |
if [[ "${{ inputs.mode || 'nightly' }}" == "nightly" ]]; then
echo "test_image_tag_suffix=nightly" >> $GITHUB_OUTPUT
elif [[ "${{ inputs.mode }}" == "release" ]]; then
echo "test_image_tag_suffix=${{ needs.build.outputs.djl_version }}-${GITHUB_RUN_ID}" >> $GITHUB_OUTPUT
else
echo "Invalid mode specified"
exit 1
fi
integration-test:
needs: [get_image_tag_suffix]
uses: ./.github/workflows/integration.yml
secrets: inherit
with:
tag-suffix: ${{ needs.get_image_tag_suffix.outputs.test_image_tag_suffix }}
determine_images_to_publish:
if: always()
needs: [integration-test]
runs-on: ubuntu-latest
outputs:
images: ${{ steps.generate-images.outputs.images }}
steps:
- name: Generate image list from test results
id: generate-images
run: |
images=""
if [[ "${{ needs.integration-test.outputs.failure_cpu }}" == "0" ]]; then
images="cpu, cpu-full,"
fi
if [[ "${{ needs.integration-test.outputs.failure_gpu }}" == "0" ]]; then
images="${images} pytorch-gpu,"
fi
if [[ "${{ needs.integration-test.outputs.failure_aarch64 }}" == "0" ]]; then
images="${images} aarch64,"
fi
if [[ "${{ needs.integration-test.outputs.failure_lmi }}" == "0" ]]; then
images="${images} lmi,"
fi
if [[ "${{ needs.integration-test.outputs.failure_trtllm }}" == "0" ]]; then
images=${images} tensorrt-llm,"
fi
if [[ "${{ needs.integration-test.outputs.failure_neuron }}" == "0" ]]; then
images="${images} pytorch-inf2"
fi
images="[${images}]"
echo "images are ${images}"
echo "images=${images}" >> "$GITHUB_OUTPUT"
publish:
needs: [determine_images_to_publish]
uses: ./.github/workflows/docker_publish.yml
secrets: inherit
with:
mode: ${{ inputs.mode || 'nightly' }}
commit_sha: ${{ github.sha }}
arch: ${{ needs.determine_images_to_publish.outputs.images }}