| # Copyright 2022 GlobalFoundries PDK Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| name: Regression testing |
| |
| # Prevent keeping resources busy when a branch/PR is updated |
| # https://docs.github.com/en/actions/using-jobs/using-concurrency |
| concurrency: |
| group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| |
| on: |
| push: |
| pull_request: |
| workflow_dispatch: |
| |
| jobs: |
| |
| |
| Test: |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - { type: DRC, pdk: drc, test: main } |
| - { type: DRC, pdk: drc, test: switch } |
| - { type: DRC, pdk: drc, test: gf180mcu_fd_io } |
| - { type: DRC, pdk: drc, test: gf180mcu_fd_ip_sram } |
| - { type: DRC, pdk: drc, test: gf180mcu_fd_sc_mcu7t5v0 } |
| - { type: DRC, pdk: drc, test: gf180mcu_fd_sc_mcu9t5v0 } |
| - { type: LVS, pdk: lvs, test: main } |
| - { type: LVS, pdk: lvs, test: switch } |
| - { type: LVS, pdk: lvs, test: gf180mcu_fd_sc_mcu7t5v0} |
| - { type: LVS, pdk: lvs, test: gf180mcu_fd_sc_mcu9t5v0 } |
| |
| name: ${{ matrix.type }} | ${{ matrix.test }} |
| |
| env: |
| PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout |
| PDK: ${{ matrix.pdk }} |
| |
| steps: |
| |
| - name: Installing Klayout |
| run: | |
| sudo apt update -qq -y |
| wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.28.2-1_amd64.deb |
| # The dpkg command will fail complaining about missing dependencies. |
| sudo dpkg -i ./klayout_0.28.2-1_amd64.deb || true |
| # The apt install command should install the missing dependencies |
| # needed by KLayout above and finish the install. |
| sudo apt install -f -y |
| # Check that KLayout was successfully installed! |
| klayout -h |
| |
| - uses: actions/checkout@v3 |
| |
| - uses: actions/setup-python@v3 |
| with: |
| python-version: '3.9' |
| cache: 'pip' |
| cache-dependency-path: '**/requirements.test.txt' |
| |
| - run: pip install -r ./rules/klayout/requirements.test.txt |
| |
| - name: Testing ${{ matrix.type }} for ${{ matrix.test }} |
| run: | |
| cd ./rules/klayout/${{ matrix.pdk }}/testing |
| make test-${{ matrix.type }}-${{ matrix.test }} |