build PDK in seperate job
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 2f74512..86babd3 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml
@@ -8,6 +8,37 @@ workflow_dispatch: jobs: + Build PDK: + 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=/usr/local/pdk" >> $GITHUB_ENV + + - name: Build PDK + run: | + sudo mkdir -p ${{ env.PDK_ROOT }} + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + make -j 1 NPROC=1 pdk + + - name: Tarball PDK + run: | + tar -cf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + + - name: Upload PDK Tarball + uses: actions/upload-artifact@v2 + with: + name: pdk-tarball + path: /tmp/sky130A.tar + + mpw_precheck: timeout-minutes: 720 runs-on: ubuntu-latest @@ -23,25 +54,18 @@ - name: Export PDK ROOT run: | echo "PDK_ROOT=/usr/local/pdk" >> $GITHUB_ENV - export PDK_ROOT=/usr/local/pdk - - name: Install Magic - run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh + - name: Download PDK Tarball + uses: actions/download-artifact@v2 + with: + name: pdk-tarball + path: /tmp - - name: Build SKY130 PDK + - name: Unpack PDK Tarball run: | - git clone --depth=1 --branch mpw-5c https://github.com/efabless/caravel-lite.git - sudo mkdir -p ${{ env.PDK_ROOT }} - sudo make -f caravel-lite/Makefile skywater-pdk open-pdks - cd ${{ env.PDK_ROOT }}/open_pdks && \ - ./configure --enable-sky130-pdk=${{ env.PDK_ROOT }}/skywater-pdk/libraries --enable-sram-sky130 && \ - cd sky130 && \ - make veryclean && \ - make prerequisites && \ - make && \ - make SHARED_PDKS_PATH=${{ env.PDK_ROOT }} install && \ - make clean - suod make -f gen-sources + sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . - name: Run MPW-Precheck run: | @@ -77,11 +101,23 @@ - name: Export OPENLANE ROOT run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV + - name: Download PDK Tarball + uses: actions/download-artifact@v2 + with: + name: pdk-tarball + path: /tmp + + - name: Unpack PDK Tarball + run: | + sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + - name: Install dependencies run: | - sudo mkdir -p ${{ env.PDK_ROOT }} - sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} - make setup + make install + make install_mcw + make openlane make simenv - name: Harden using Openlane