|
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,81 @@ 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 | + CUDA_CORE_ARTIFACT_BASENAME="cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ matrix.host-platform }}" |
| 65 | + echo "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $GITHUB_ENV |
| 66 | + echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV |
65 | 67 | 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 |
| 68 | + CUDA_BINDINGS_ARTIFACT_BASENAME="cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ matrix.cuda-version }}-${{ matrix.host-platform }}" |
| 69 | + echo "CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $GITHUB_ENV |
| 70 | + echo "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV |
67 | 71 | echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/dist")" >> $GITHUB_ENV
|
68 | 72 |
|
| 73 | + # We'll try GHA Artifacts first, and then fall back to GHA Cache |
69 | 74 | - name: Download cuda.bindings build artifacts
|
| 75 | + id: cuda-bindings-download |
70 | 76 | uses: actions/download-artifact@v4
|
71 | 77 | with:
|
72 | 78 | name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}
|
73 | 79 | path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
|
74 | 80 |
|
| 81 | + - name: Restore cuda.bindings cache |
| 82 | + if: ${{ failure() && steps.cuda-bindings-download.conclusion == 'failure' }} |
| 83 | + id: cuda-bindings-cache |
| 84 | + uses: actions/cache/restore@v4 |
| 85 | + with: |
| 86 | + key: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }} |
| 87 | + path: ${{ env.CUDA_BINDINGS_ARTIFACT_BASENAME }}.tar.gz |
| 88 | + restore-keys: ${{ env.CUDA_BINDINGS_ARTIFACT_BASENAME }} |
| 89 | + fail-on-cache-miss: true |
| 90 | + |
| 91 | + - name: Report cache restore status (hit) |
| 92 | + if: ${{ steps.cuda-bindings-cache.conclusion != 'skipped' && |
| 93 | + steps.cuda-bindings-cache.outputs.cache-hit == 'true' }} |
| 94 | + run: | |
| 95 | + echo "cache is found" |
| 96 | + CACHE_DIR="${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}" |
| 97 | + CACHE_ARCHIVE="${{ env.CUDA_BINDINGS_ARTIFACT_BASENAME }}.tar.gz" |
| 98 | + ls -l $CACHE_ARCHIVE |
| 99 | + mkdir -p $CACHE_DIR |
| 100 | + du -h $CACHE_ARCHIVE && |
| 101 | + tar -x -f $CACHE_ARCHIVE -C $CACHE_DIR && |
| 102 | + rm -f $CACHE_ARCHIVE || echo "WARNING: cache could not be retrieved." |
| 103 | +
|
75 | 104 | - name: Display structure of downloaded cuda.bindings artifacts
|
76 | 105 | run: |
|
77 | 106 | pwd
|
78 | 107 | ls -lahR $CUDA_BINDINGS_ARTIFACTS_DIR
|
79 | 108 |
|
80 | 109 | - name: Download cuda.core build artifacts
|
| 110 | + id: cuda-core-download |
81 | 111 | uses: actions/download-artifact@v4
|
82 | 112 | with:
|
83 | 113 | name: ${{ env.CUDA_CORE_ARTIFACT_NAME }}
|
84 | 114 | path: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
|
85 | 115 |
|
| 116 | + - name: Restore cuda.core cache |
| 117 | + if: ${{ failure() && steps.cuda-core-download.conclusion == 'failure' }} |
| 118 | + id: cuda-core-cache |
| 119 | + uses: actions/cache/restore@v4 |
| 120 | + with: |
| 121 | + key: ${{ env.CUDA_CORE_ARTIFACT_NAME }} |
| 122 | + path: ${{ env.CUDA_CORE_ARTIFACT_BASENAME }}.tar.gz |
| 123 | + restore-keys: ${{ env.CUDA_CORE_ARTIFACT_BASENAME }} |
| 124 | + fail-on-cache-miss: true |
| 125 | + |
| 126 | + - name: Report cache restore status (hit) |
| 127 | + if: ${{ steps.cuda-core-cache.conclusion != 'skipped' && |
| 128 | + steps.cuda-core-cache.outputs.cache-hit == 'true' }} |
| 129 | + run: | |
| 130 | + echo "cache is found" |
| 131 | + CACHE_DIR="${{ env.CUDA_CORE_ARTIFACTS_DIR }}" |
| 132 | + CACHE_ARCHIVE="${{ env.CUDA_CORE_ARTIFACT_BASENAME }}.tar.gz" |
| 133 | + ls -l $CACHE_ARCHIVE |
| 134 | + mkdir -p $CACHE_DIR |
| 135 | + du -h $CACHE_ARCHIVE && |
| 136 | + tar -x -f $CACHE_ARCHIVE -C $CACHE_DIR && |
| 137 | + rm -f $CACHE_ARCHIVE || echo "WARNING: cache could not be retrieved." |
| 138 | +
|
86 | 139 | - name: Display structure of downloaded cuda.core build artifacts
|
87 | 140 | run: |
|
88 | 141 | pwd
|
|
0 commit comments