name: CI

on:
  # Runs on Every Push
  push:
  # Runs on Pull Requests
  pull_request:
  workflow_dispatch:

jobs:
    mpw_precheck_sky130A:
        timeout-minutes: 720
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2

          - name: Set up QEMU
            uses: docker/setup-qemu-action@v1

          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v1

          - name: Export PDK ROOT
            run: |
              echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV

          - name: Export PDKPATH
            run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $GITHUB_ENV

          - name: Download PDK
            run: |
              MPW_TAG=main CARAVEL_LITE=0 make install
              make pdk-with-volare
          
          - name: Run MPW-Precheck
            run: |
              export INPUT_DIRECTORY=$(pwd)
              export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
              export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
              export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
              git clone --depth=1 -b mpw-7a https://github.com/efabless/mpw_precheck.git
              docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "${{ env.PDK_ROOT }}":"${{ env.PDK_ROOT }}" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="${{ env.PDK_ROOT }}" -e PDKPATH="${{ env.PDKPATH }}" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_path ${{ env.PDKPATH }} --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
              cnt=$(grep -c "All Checks Passed" "$OUTPUT")
              if ! [[ $cnt ]]; then cnt=0; fi
              if [[ $cnt -eq 1 ]]; then exit 0; fi
              exit 2

          - name: upload failure logs
            if: failure()
            uses: actions/upload-artifact@v2
            with:
              name: error
              path: |
                /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/*

  mpw_precheck_sky130B:
        timeout-minutes: 720
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2

          - name: Set up QEMU
            uses: docker/setup-qemu-action@v1

          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v1

          - name: Export PDK ROOT
            run: |
              echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV

          - name: Export PDKPATH
            run: echo "PDKPATH=/home/runner/work/pdk/sky130B" >> $GITHUB_ENV

          - name: Download PDK
            run: |
              MPW_TAG=main CARAVEL_LITE=0 make install
              make pdk-with-volare
          
          - name: Run MPW-Precheck
            run: |
              export INPUT_DIRECTORY=$(pwd)
              export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
              export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
              export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
              git clone --depth=1 -b mpw-7a https://github.com/efabless/mpw_precheck.git
              docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "${{ env.PDK_ROOT }}":"${{ env.PDK_ROOT }}" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="${{ env.PDK_ROOT }}" -e PDKPATH="${{ env.PDKPATH }}" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_path ${{ env.PDKPATH }} --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
              cnt=$(grep -c "All Checks Passed" "$OUTPUT")
              if ! [[ $cnt ]]; then cnt=0; fi
              if [[ $cnt -eq 1 ]]; then exit 0; fi
              exit 2

          - name: upload failure logs
            if: failure()
            uses: actions/upload-artifact@v2
            with:
              name: error
              path: |
                /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/*

