@@ -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