# 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 }}
