|
11 | 11 | build:
|
12 | 12 | name: Build docs
|
13 | 13 | # The build stage could fail but we want the CI to keep moving.
|
14 |
| - if: ${{ github.repository_owner == 'nvidia' && always() }} |
| 14 | + if: ${{ github.repository_owner == 'nvidia' && !cancelled() }} |
15 | 15 | # WAR: Building the doc currently requires a GPU (NVIDIA/cuda-python#326,327)
|
16 | 16 | runs-on: linux-amd64-gpu-t4-latest-1-testing
|
17 | 17 | #runs-on: ubuntu-latest
|
@@ -61,28 +61,79 @@ jobs:
|
61 | 61 | REPO_DIR=$(pwd)
|
62 | 62 |
|
63 | 63 | # make outputs from the previous job as env vars
|
64 |
| - echo "CUDA_CORE_ARTIFACT_NAME=cuda-core-python${PYTHON_VERSION_FORMATTED}-linux-64-${{ github.sha }}" >> $GITHUB_ENV |
| 64 | + echo "CUDA_CORE_ARTIFACT_BASENAME=cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ matrix.host-platform }}" >> $GITHUB_ENV |
| 65 | + echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV |
65 | 66 | echo "CUDA_CORE_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_core/dist")" >> $GITHUB_ENV
|
66 |
| - echo "CUDA_BINDINGS_ARTIFACT_NAME=cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ inputs.build_ctk_ver }}-linux-64-${{ github.sha }}" >> $GITHUB_ENV |
| 67 | + echo "CUDA_BINDINGS_ARTIFACT_BASENAME=cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ matrix.cuda-version }}-${{ matrix.host-platform }}" >> $GITHUB_ENV |
| 68 | + echo "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV |
67 | 69 | echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/dist")" >> $GITHUB_ENV
|
68 | 70 |
|
| 71 | + # We'll try GHA Artifacts first, and then fall back to GHA Cache |
69 | 72 | - name: Download cuda.bindings build artifacts
|
| 73 | + id: cuda-bindings-download |
70 | 74 | uses: actions/download-artifact@v4
|
71 | 75 | with:
|
72 | 76 | name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}
|
73 | 77 | path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
|
74 | 78 |
|
| 79 | + - name: Restore cuda.bindings cache |
| 80 | + if: ${{ failure() && steps.cuda-bindings-download.conclusion == 'failure' }} |
| 81 | + id: cuda-bindings-cache |
| 82 | + uses: actions/cache/restore@v4 |
| 83 | + with: |
| 84 | + key: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }} |
| 85 | + path: ${{ env.CUDA_BINDINGS_ARTIFACTS_BASENAME }}.tar.gz |
| 86 | + restore-keys: ${{ env.CUDA_BINDINGS_ARTIFACT_BASENAME }} |
| 87 | + fail-on-cache-miss: true |
| 88 | + |
| 89 | + - name: Report cache restore status (hit) |
| 90 | + if: ${{ steps.cuda-bindings-cache.conclusion != 'skipped' && |
| 91 | + steps.cuda-bindings-cache.outputs.cache-hit == 'true' }} |
| 92 | + run: | |
| 93 | + echo "cache is found" |
| 94 | + CACHE_DIR="${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}" |
| 95 | + CACHE_ARCHIVE="${{ env.CUDA_BINDINGS_ARTIFACTS_BASENAME }}.tar.gz" |
| 96 | + ls -l $CACHE_ARCHIVE |
| 97 | + mkdir -p $CACHE_DIR |
| 98 | + du -h $CACHE_ARCHIVE && |
| 99 | + tar -x -f $CACHE_ARCHIVE -C $CACHE_DIR && |
| 100 | + rm -f $CACHE_ARCHIVE || echo "WARNING: cache could not be retrieved." |
| 101 | +
|
75 | 102 | - name: Display structure of downloaded cuda.bindings artifacts
|
76 | 103 | run: |
|
77 | 104 | pwd
|
78 | 105 | ls -lahR $CUDA_BINDINGS_ARTIFACTS_DIR
|
79 | 106 |
|
80 | 107 | - name: Download cuda.core build artifacts
|
| 108 | + id: cuda-core-download |
81 | 109 | uses: actions/download-artifact@v4
|
82 | 110 | with:
|
83 | 111 | name: ${{ env.CUDA_CORE_ARTIFACT_NAME }}
|
84 | 112 | path: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
|
85 | 113 |
|
| 114 | + - name: Restore cuda.core cache |
| 115 | + if: ${{ failure() && steps.cuda-core-download.conclusion == 'failure' }} |
| 116 | + id: cuda-core-cache |
| 117 | + uses: actions/cache/restore@v4 |
| 118 | + with: |
| 119 | + key: ${{ env.CUDA_CORE_ARTIFACT_NAME }} |
| 120 | + path: ${{ env.CUDA_CORE_ARTIFACTS_BASENAME }}.tar.gz |
| 121 | + restore-keys: ${{ env.CUDA_CORE_ARTIFACT_BASENAME }} |
| 122 | + fail-on-cache-miss: true |
| 123 | + |
| 124 | + - name: Report cache restore status (hit) |
| 125 | + if: ${{ steps.cuda-core-cache.conclusion != 'skipped' && |
| 126 | + steps.cuda-core-cache.outputs.cache-hit == 'true' }} |
| 127 | + run: | |
| 128 | + echo "cache is found" |
| 129 | + CACHE_DIR="${{ env.CUDA_CORE_ARTIFACTS_DIR }}" |
| 130 | + CACHE_ARCHIVE="${{ env.CUDA_CORE_ARTIFACTS_BASENAME }}.tar.gz" |
| 131 | + ls -l $CACHE_ARCHIVE |
| 132 | + mkdir -p $CACHE_DIR |
| 133 | + du -h $CACHE_ARCHIVE && |
| 134 | + tar -x -f $CACHE_ARCHIVE -C $CACHE_DIR && |
| 135 | + rm -f $CACHE_ARCHIVE || echo "WARNING: cache could not be retrieved." |
| 136 | +
|
86 | 137 | - name: Display structure of downloaded cuda.core build artifacts
|
87 | 138 | run: |
|
88 | 139 | pwd
|
|
0 commit comments