1- name : MPW Precheck
1+ name : Precheck CI
22
33on :
44 push :
55 pull_request :
66 workflow_dispatch :
77
88jobs :
9- mpw- precheck :
9+ precheck :
1010 runs-on : ubuntu-latest
1111 strategy :
1212 matrix :
1313 include :
1414 - repo : ' caravel_user_project'
15- skip_checks : ' default gpio_defines'
16- # - repo: 'caravel_user_mini'
17- # skip_checks: ''
15+ skip_checks : ' gpio_defines'
1816 - repo : ' caravel_user_sram'
1917 skip_checks : ' gpio_defines lvs'
2018 - repo : ' caravel_user_project_analog'
21- skip_checks : ' default gpio_defines lvs'
19+ skip_checks : ' gpio_defines lvs'
2220 - repo : ' openframe_user_project'
2321 skip_checks : ' '
2422 fail-fast : false
2523
2624 steps :
27- - name : Checkout chipfoundry/ mpw_precheck
25+ - name : Checkout mpw_precheck
2826 uses : actions/checkout@v4
2927 with :
3028 repository : chipfoundry/mpw_precheck
5654 --output type=docker \
5755 --tag mpw_precheck:latest \
5856 mpw_precheck/dependencies
59- timeout-minutes : 30 # Increased timeout to 30 minutes
57+ timeout-minutes : 30
6058
6159 - name : Move cache
6260 run : |
@@ -78,41 +76,32 @@ jobs:
7876 env :
7977 PDK_ROOT : ${{ github.workspace }}/pdk
8078
81- - name : Run MPW Precheck
79+ - name : Run Precheck
8280 run : |
83- export INPUT_DIRECTORY=${{ github.workspace }}/${{ matrix.repo }}
84- export PRECHECK_ROOT=${{ github.workspace }}/mpw_precheck
85- export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
86- export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
87- export PDK_ROOT=${{ github.workspace }}/pdk
88- export PDKPATH=$PDK_ROOT/sky130A
89-
90- SKIP_CHECKS_ARG=""
81+ INPUT_DIR=${{ github.workspace }}/${{ matrix.repo }}
82+ OUTPUT_DIR=$INPUT_DIR/precheck_results
83+ PDK_ROOT=${{ github.workspace }}/pdk
84+ PDK_PATH=$PDK_ROOT/sky130A
85+
86+ SKIP_ARGS=""
9187 if [ -n "${{ matrix.skip_checks }}" ]; then
92- SKIP_CHECKS_ARG ="--skip_checks ${{ matrix.skip_checks }}"
88+ SKIP_ARGS ="--skip-checks ${{ matrix.skip_checks }}"
9389 fi
9490
95- docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" \
96- -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" \
97- -v "$PDK_ROOT":"$PDK_ROOT" \
98- -e INPUT_DIRECTORY="$INPUT_DIRECTORY" \
99- -e PDK_ROOT="$PDK_ROOT" \
100- -e PDKPATH="$PDKPATH" \
101- -u $(id -u "$USER"):$(id -g "$USER") \
102- mpw_precheck:latest \
103- bash -c "cd $PRECHECK_ROOT && python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_path $PDKPATH --output_directory $OUTPUT_DIRECTORY --skip_checks $SKIP_CHECKS_ARG"
104-
105- if grep -q "All Checks Passed" "$OUTPUT"; then
106- echo "All checks passed for ${{ matrix.repo }}"
107- exit 0
108- else
109- echo "Checks failed for ${{ matrix.repo }}"
110- exit 1
111- fi
91+ docker run \
92+ -v "$INPUT_DIR":"$INPUT_DIR" \
93+ -v "$PDK_ROOT":"$PDK_ROOT" \
94+ mpw_precheck:latest \
95+ cf-precheck \
96+ -i "$INPUT_DIR" \
97+ -p "$PDK_PATH" \
98+ -c /opt/caravel \
99+ -o "$OUTPUT_DIR" \
100+ $SKIP_ARGS
112101
113- - name : Upload MPW Precheck output
102+ - name : Upload Precheck results
114103 uses : actions/upload-artifact@v4
115104 if : failure()
116105 with :
117- name : mpw- precheck-results-${{ matrix.repo }}
118- path : ${{ github.workspace }}/${{ matrix.repo }}/mpw_precheck_result
106+ name : precheck-results-${{ matrix.repo }}
107+ path : ${{ github.workspace }}/${{ matrix.repo }}/precheck_results
0 commit comments