@@ -17,39 +17,37 @@ jobs:
1717 runs-on : ubuntu-22.04
1818 strategy :
1919 matrix :
20- pdk : [sky130A, gf180mcuC]
20+ pdk : [sky130A]
21+ outputs :
22+ opdks_rev : ${{ steps.set-rev.outputs.opdks_rev }}
2123 steps :
2224 - uses : actions/checkout@v4
2325
2426 - name : Set up environment variables
2527 uses : ./.github/actions/set_env_variables
2628
29+ - name : Get Open PDKs Revision
30+ id : set-rev
31+ run : |
32+ echo "opdks_rev=$(python3 ./dependencies/tool.py open_pdks -f commit)" >> $GITHUB_OUTPUT
33+
34+ - name : Cache sky130 PDK
35+ uses : actions/cache@v4
36+ with :
37+ path : ${{ env.PDK_ROOT }}
38+ key : cache-${{ matrix.pdk }}-pdk-${{ steps.set-rev.outputs.opdks_rev }}
39+ enableCrossOsArchive : true
40+
2741 - name : Build (or Get) PDK
2842 run : |
2943 export PATH=$PATH:$(go env GOPATH)/bin
30- export OPDKS_VER="$(python3 ./dependencies/tool.py open_pdks -f commit)"
3144 PDK=${{ matrix.pdk }}
32- PDK_FAMILY=${PDK%?}
33-
34- sudo mkdir -p ${{ env.PDK_ROOT }}
35- sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
3645
3746 python3 -m pip install --upgrade --no-cache-dir 'ciel>=2.0.1,<3'
38- export OPDKS_VER="$(python3 ./dependencies/tool.py open_pdks -f commit)"
3947 ciel enable\
40- --pdk $PDK_FAMILY \
48+ --pdk-family $PDK \
4149 --github-token ${{ secrets.GITHUB_TOKEN }}\
42- $OPDKS_VER
43-
44- - name : Tarball PDK
45- run : |
46- tar -cf /tmp/${{ matrix.pdk }}.tar -C $PDK_ROOT/${{ matrix.pdk }} .
47-
48- - name : Upload PDK Tarball
49- uses : actions/upload-artifact@v4
50- with :
51- name : pdk-tarball-${{ matrix.pdk }}
52- path : /tmp/${{ matrix.pdk }}.tar
50+ ${{ steps.set-rev.outputs.opdks_rev }}
5351 prepare_test_matrices :
5452 name : Prepare Test Matrices
5553 runs-on : ubuntu-22.04
7169 id : set-matrix
7270 run : |
7371 if [[ "$USE_ETS" = "1" ]]; then
74- echo "design_matrix=$(python3 ./.github/test_sets/get_test_matrix.py --scl sky130A/sky130_fd_sc_hd --scl gf180mcuC /gf180mcu_fd_sc_mcu7t5v0 fastest_test_set extended_test_set)" >> $GITHUB_OUTPUT
72+ echo "design_matrix=$(python3 ./.github/test_sets/get_test_matrix.py --scl sky130A/sky130_fd_sc_hd --scl gf180mcuD /gf180mcu_fd_sc_mcu7t5v0 fastest_test_set extended_test_set)" >> $GITHUB_OUTPUT
7573 else
76- echo "design_matrix=$(python3 ./.github/test_sets/get_test_matrix.py --scl sky130A/sky130_fd_sc_hd --scl gf180mcuC /gf180mcu_fd_sc_mcu7t5v0 fastest_test_set)" >> $GITHUB_OUTPUT
74+ echo "design_matrix=$(python3 ./.github/test_sets/get_test_matrix.py --scl sky130A/sky130_fd_sc_hd --scl gf180mcuD /gf180mcu_fd_sc_mcu7t5v0 fastest_test_set)" >> $GITHUB_OUTPUT
7775 fi
7876 echo "issue_regression_matrix=$(python3 -m tests get_matrix)" >> $GITHUB_OUTPUT
7977
@@ -129,17 +127,18 @@ jobs:
129127 - name : Import Docker Image
130128 run : docker load --input /tmp/image-amd64.tar
131129
132- - name : Download PDK Tarball
133- uses : actions/download-artifact@v4
130+ - name : Cache PDK
131+ id : cache-pdk
132+ uses : actions/cache@v4
134133 with :
135- name : pdk-tarball-sky130A
136- path : /tmp
134+ path : ${{ env.PDK_ROOT }}
135+ key : cache-${{ matrix.design.pdk }}-pdk-${{ needs.pdk_build.outputs.opdks_rev }}
136+ enableCrossOsArchive : true
137137
138- - name : Unpack PDK Tarball
138+ - name : Enable PDKs
139+ if : steps.cache-pdk.outputs.cache-hit != 'true'
139140 run : |
140- sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A
141- sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
142- tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A .
141+ PDK=${{ matrix.design.pdk }} make pdk
143142
144143 - name : Get Pyyaml
145144 run : python3 -m pip install pyyaml
@@ -179,17 +178,18 @@ jobs:
179178 - name : Import Docker Image
180179 run : docker load --input /tmp/image-amd64.tar
181180
182- - name : Download PDK Tarball
183- uses : actions/download-artifact@v4
181+ - name : Cache PDK
182+ id : cache-pdk
183+ uses : actions/cache@v4
184184 with :
185- name : pdk-tarball-${{ matrix.design.pdk }}
186- path : /tmp
185+ path : ${{ env.PDK_ROOT }}
186+ key : cache-${{ matrix.design.pdk }}-pdk-${{ needs.pdk_build.outputs.opdks_rev }}
187+ enableCrossOsArchive : true
187188
188- - name : Unpack PDK Tarball
189+ - name : Enable PDKs
190+ if : steps.cache-pdk.outputs.cache-hit != 'true'
189191 run : |
190- sudo mkdir -p ${{ env.PDK_ROOT }}/${{ matrix.design.pdk }}
191- sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
192- tar -xf /tmp/${{ matrix.design.pdk }}.tar -C $PDK_ROOT/${{ matrix.design.pdk }} .
192+ PDK=${{ matrix.design.pdk }} make pdk
193193
194194 - name : Set PDK Variant
195195 run : |
@@ -256,21 +256,6 @@ jobs:
256256 name : docker-image-arm64v8
257257 path : /tmp
258258
259- - name : Delete Docker Image (amd64)
260- uses : geekyeggo/delete-artifact@v1
261- with :
262- name : docker-image-amd64
263-
264- - name : Delete Docker Image (arm64v8)
265- uses : geekyeggo/delete-artifact@v1
266- with :
267- name : docker-image-arm64v8
268-
269- - name : Delete PDK
270- uses : geekyeggo/delete-artifact@v1
271- with :
272- name : pdk-tarball
273-
274259 - name : Write Hash
275260 run : |
276261 echo "GIT_COMMIT_HASH=$(git rev-parse HEAD)" >> $GITHUB_ENV
0 commit comments