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/*

