Merge pull request #18 from umarcor/umarcor/ci

ci: combine workflows and homogenize testing target names; limit concurrency
diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml
new file mode 100644
index 0000000..1138d5d
--- /dev/null
+++ b/.github/workflows/Tests.yml
@@ -0,0 +1,83 @@
+# 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:
+
+      - 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: Installing Klayout 0.27.8
+        run: |
+          sudo apt update -qq -y
+          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
+          sudo apt install -qq -y \
+            qt5-default \
+            qttools5-dev \
+            libqt5xmlpatterns5-dev \
+            qtmultimedia5-dev \
+            libqt5multimediawidgets5 \
+            libqt5svg5-dev
+          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
+          sudo apt-get install -f -y
+
+      - name: Testing ${{ matrix.type }} for ${{ matrix.test }}
+        run: |
+          cd ./rules/klayout/${{ matrix.pdk }}/testing
+          make test-${{ matrix.type }}-${{ matrix.test }}
diff --git a/.github/workflows/drc_gf180mcu_fd_io_test.yml b/.github/workflows/drc_gf180mcu_fd_io_test.yml
deleted file mode 100644
index 39a905c..0000000
--- a/.github/workflows/drc_gf180mcu_fd_io_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: Regression testing the DRC rules against gf180mcu_fd_io
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "gf180mcu_fd_io_DRC_testing"
-  gf180mcu_fd_io_DRC_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for gf180mcu_fd_io
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC-gf180mcu_fd_io
diff --git a/.github/workflows/drc_gf180mcu_fd_ip_sram_test.yml b/.github/workflows/drc_gf180mcu_fd_ip_sram_test.yml
deleted file mode 100644
index 4c80822..0000000
--- a/.github/workflows/drc_gf180mcu_fd_ip_sram_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: Regression testing the DRC rules against gf180mcu_fd_ip_sram
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "DRC_gf180mcu_fd_ip_sram_testing"
-  DRC_gf180mcu_fd_ip_sram_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for gf180mcu_fd_ip_sram
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC-gf180mcu_fd_ip_sram
diff --git a/.github/workflows/drc_gf180mcu_fd_sc_mcu7t5v0_test.yml b/.github/workflows/drc_gf180mcu_fd_sc_mcu7t5v0_test.yml
deleted file mode 100644
index b97d413..0000000
--- a/.github/workflows/drc_gf180mcu_fd_sc_mcu7t5v0_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: Regression testing the DRC rules against gf180mcu_fd_sc_mcu7t5v0
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "DRC_gf180mcu_fd_sc_mcu7t5v0_testing"
-  DRC_gf180mcu_fd_sc_mcu7t5v0_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for gf180mcu_fd_sc_mcu7t5v0
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC-gf180mcu_fd_sc_mcu7t5v0
diff --git a/.github/workflows/drc_gf180mcu_fd_sc_mcu9t5v0_test.yml b/.github/workflows/drc_gf180mcu_fd_sc_mcu9t5v0_test.yml
deleted file mode 100644
index 463e37a..0000000
--- a/.github/workflows/drc_gf180mcu_fd_sc_mcu9t5v0_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: Regression testing the DRC rules against gf180mcu_fd_sc_mcu9t5v0
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "DRC_gf180mcu_fd_sc_mcu9t5v0_testing"
-  DRC_gf180mcu_fd_sc_mcu9t5v0_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for gf180mcu_fd_sc_mcu9t5v0
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC-gf180mcu_fd_sc_mcu9t5v0
diff --git a/.github/workflows/drc_regression_test.yml b/.github/workflows/drc_regression_test.yml
deleted file mode 100644
index df1737e..0000000
--- a/.github/workflows/drc_regression_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: Regression testing the DRC rules
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "DRC_Regression_testing"
-  DRC_Regression_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for Regression
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC_main -j$(nproc)
diff --git a/.github/workflows/drc_switch_checking_test.yml b/.github/workflows/drc_switch_checking_test.yml
deleted file mode 100644
index d4040ef..0000000
--- a/.github/workflows/drc_switch_checking_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing DRC rule deck of GF180MCU
-name: DRC Switch Checking (Rule deck arguments) test
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: drc
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "DRC_Switch_Checking_testing"
-  DRC_Switch_Checking_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing DRC for Switch Checking
-        run: |
-          cd ./rules/klayout/drc/testing
-          make test-DRC_switch -j$(nproc)
diff --git a/.github/workflows/lvs_gf180mcu_fd_sc_mcu7t5v0_test.yml b/.github/workflows/lvs_gf180mcu_fd_sc_mcu7t5v0_test.yml
deleted file mode 100644
index 2e3eed0..0000000
--- a/.github/workflows/lvs_gf180mcu_fd_sc_mcu7t5v0_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing LVS rule deck of GF180MCU
-name: Standard Cells gf180mcu_fd_sc_mcu7t5v0 LVS testing
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: lvs
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "LVS_gf180mcu_fd_sc_mcu7t5v0_testing"
-  LVS_gf180mcu_fd_sc_mcu7t5v0_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing LVS for Standard Cells gf180mcu_fd_sc_mcu7t5v0
-        run: |
-          cd ./rules/klayout/lvs/testing
-          make test-LVS-gf180mcu_fd_sc_mcu7t5v0 -j$(nproc)
diff --git a/.github/workflows/lvs_gf180mcu_fd_sc_mcu9t5v0_test.yml b/.github/workflows/lvs_gf180mcu_fd_sc_mcu9t5v0_test.yml
deleted file mode 100644
index 0a1866e..0000000
--- a/.github/workflows/lvs_gf180mcu_fd_sc_mcu9t5v0_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing LVS rule deck of GF180MCU
-name: Standard Cells gf180mcu_fd_sc_mcu9t5v0 LVS testing
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: lvs
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "LVS_gf180mcu_fd_sc_mcu9t5v0_testing"
-  LVS_gf180mcu_fd_sc_mcu9t5v0_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing LVS for Standard Cells gf180mcu_fd_sc_mcu9t5v0
-        run: |
-          cd ./rules/klayout/lvs/testing
-          make test-LVS-gf180mcu_fd_sc_mcu9t5v0 -j$(nproc)
diff --git a/.github/workflows/lvs_regression.yml b/.github/workflows/lvs_regression.yml
deleted file mode 100644
index e8507ef..0000000
--- a/.github/workflows/lvs_regression.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing LVS rule deck of GF180MCU
-name: LVS Regression test
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: lvs
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "LVS_Regression_testing"
-  LVS_Regression_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing LVS for Regression
-        run: |
-          cd ./rules/klayout/lvs/testing
-          make test-LVS_main -j$(nproc)
diff --git a/.github/workflows/lvs_switch_checking_test.yml b/.github/workflows/lvs_switch_checking_test.yml
deleted file mode 100644
index 964a42b..0000000
--- a/.github/workflows/lvs_switch_checking_test.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-# This is a Github Actions for testing LVS rule deck of GF180MCU
-name: LVS Switch Checking (Rule deck arguments) test
-
-# Controls when the workflow will run
-on:
-  # Triggers the workflow on push or pull request events
-  push:
-  pull_request:
-
-  # Allows you to run this workflow manually from the Actions tab
-  workflow_dispatch:
-
-# Defines environment variables
-env:
-  PDK_ROOT: $GITHUB_WORKSPACE/rules/klayout
-  PDK: lvs
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  # This workflow contains a single job called "LVS_Switch_checking_testing"
-  LVS_Switch_checking_testing:
-    # The type of runner that the job will run on
-    runs-on: ubuntu-latest
-
-    # Steps represent a sequence of tasks that will be executed as part of the job
-    steps:
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-
-      # Gets python version with list of needed requirements
-      - uses: actions/setup-python@v3
-        with:
-          python-version: '3.9'
-          cache: 'pip'
-          cache-dependency-path: '**/requirements.test.txt'
-
-      # Installs requirements
-      - run: pip install -r ./rules/klayout/requirements.test.txt
-
-      # Installs Klayout verison 0.27.8
-      - name: Installing Klayout 0.27.8
-        run: |
-          sudo apt-get update
-          sudo apt-get upgrade -y
-          wget https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.8-1_amd64.deb
-          sudo apt-get install qt5-default qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev
-          sudo dpkg -i ./klayout_0.27.8-1_amd64.deb
-          sudo apt-get install -f -y
-
-      # Runs a set of commands using the runners shell
-      - name: Testing LVS for Switch Checking
-        run: |
-          cd ./rules/klayout/lvs/testing
-          make test-LVS_switch -j$(nproc)
diff --git a/rules/klayout/drc/testing/Makefile b/rules/klayout/drc/testing/Makefile
index 21d8f44..df53ce7 100644
--- a/rules/klayout/drc/testing/Makefile
+++ b/rules/klayout/drc/testing/Makefile
@@ -23,16 +23,16 @@
 
 all : clean test-DRC
 
-test-DRC: test-DRC_switch  test-DRC_SC  test-DRC_main
+test-DRC: test-DRC-switch  test-DRC-SC  test-DRC-main
 
 
 #=================================
-# --------- test-DRC_SC ----------
+# --------- test-DRC-SC ----------
 #=================================
 
 .ONESHELL:
-test-DRC_SC : test-DRC-gf180mcu_fd_ip_sram test-DRC-gf180mcu_fd_io test-DRC-gf180mcu_fd_sc_mcu7t5v0 test-DRC-gf180mcu_fd_sc_mcu9t5v0
-	@echo "========== DRC-DRC_SC is done =========="
+test-DRC-SC : test-DRC-gf180mcu_fd_ip_sram test-DRC-gf180mcu_fd_io test-DRC-gf180mcu_fd_sc_mcu7t5v0 test-DRC-gf180mcu_fd_sc_mcu9t5v0
+	@echo "========== DRC-DRC-SC is done =========="
 
 .ONESHELL:
 test-DRC-gf180mcu_fd_ip_sram:
@@ -42,7 +42,7 @@
 		--path=ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds 	\
 		--path=ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds	\
 		--path=ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds	\
-		--path=ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds	
+		--path=ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
 
 .ONESHELL:
 test-DRC-gf180mcu_fd_io:
@@ -70,7 +70,7 @@
 #=================================
 
 .ONESHELL:
-test-DRC_main : test-DRC-foundry-Option-1 test-DRC-foundry-Option-2 test-DRC-foundry-Option-3 test-DRC-foundry-Option-4 test-DRC-Option-A test-DRC-Option-B test-DRC-Option-C
+test-DRC-main : test-DRC-foundry-Option-1 test-DRC-foundry-Option-2 test-DRC-foundry-Option-3 test-DRC-foundry-Option-4 test-DRC-Option-A test-DRC-Option-B test-DRC-Option-C
 	@echo "========== DRC-Regression is done =========="
 
 .ONESHELL:
@@ -79,7 +79,7 @@
 	@echo "========== DRC-Regression foundry-Option-1 =========="
 	@python3 run_regression.py 																\
 		--path=testcases/0.0.DM000013_13_1P6M_6kA_MIMA_SOLDER_BUMP.gds.gz					\
-		--metal_top="6K" --mim_option="A"  --metal_level=6 --run_name="DRC-foundry-Option-1"										
+		--metal_top="6K" --mim_option="A"  --metal_level=6 --run_name="DRC-foundry-Option-1"
 
 .ONESHELL:
 test-DRC-foundry-Option-2:
@@ -87,7 +87,7 @@
 	@echo "========== DRC-Regression foundry-Option-2 =========="
 	@python3 run_regression.py 																\
 		--path=testcases/0.0.DM000013_13_1P6M_9kA_MIMB_WEDGE.gds.gz							\
-		--metal_top="9K" --mim_option="B"  --metal_level=6  --run_name="DRC-foundry-Option-2"										
+		--metal_top="9K" --mim_option="B"  --metal_level=6  --run_name="DRC-foundry-Option-2"
 
 .ONESHELL:
 test-DRC-foundry-Option-3:
@@ -95,7 +95,7 @@
 	@echo "========== DRC-Regression foundry-Option-3 =========="
 	@python3 run_regression.py 																\
 		--path=testcases/0.0.DM000013_13_1P6M_11kA_MIMA_Gold_Bump.gds.gz					\
-		--metal_top="11K" --mim_option="A"  --metal_level=6	--run_name="DRC-foundry-Option-3"										
+		--metal_top="11K" --mim_option="A"  --metal_level=6	--run_name="DRC-foundry-Option-3"
 
 .ONESHELL:
 test-DRC-foundry-Option-4:
@@ -103,7 +103,7 @@
 	@echo "========== DRC-Regression foundry-Option-4 =========="
 	@python3 run_regression.py 																\
 		--path=testcases/0.0.DM000013_13_1P6M_30kA_MIMB_BALL.gds.gz							\
-		--metal_top="30K" --mim_option="B"  --metal_level=6	--run_name="DRC-foundry-Option-4"									
+		--metal_top="30K" --mim_option="B"  --metal_level=6	--run_name="DRC-foundry-Option-4"
 
 .ONESHELL:
 test-DRC-Option-A:
@@ -111,7 +111,7 @@
 	@echo "========== DRC-Regression Option-A =========="
 	@python3 run_regression.py 														\
 		--path=testcases/0.0.DM000013_13_1P6M_11kA_MIMA_Gold_Bump.gds.gz			\
-		--metal_top="30K" --mim_option="A"  --metal_level=3	--run_name="DRC-Option-A"										
+		--metal_top="30K" --mim_option="A"  --metal_level=3	--run_name="DRC-Option-A"
 
 .ONESHELL:
 test-DRC-Option-B:
@@ -119,7 +119,7 @@
 	@echo "========== DRC-Regression Option-B =========="
 	@python3 run_regression.py 														\
 		--path=testcases/0.0.DM000013_13_1P6M_11kA_MIMA_Gold_Bump.gds.gz			\
-		--metal_top="11K" --mim_option="B"  --metal_level=4	--run_name="DRC-Option-B"			
+		--metal_top="11K" --mim_option="B"  --metal_level=4	--run_name="DRC-Option-B"
 
 .ONESHELL:
 test-DRC-Option-C:
@@ -136,14 +136,14 @@
 		--path=testcases/density_testcases/MT_3_pass.gds				 			\
 		--path=testcases/density_testcases/PL_8_fail.gds				 			\
 		--path=testcases/density_testcases/PL_8_pass.gds				 			\
-		--metal_top="9K" --mim_option="B"  --metal_level=5	--run_name="DRC-Option-C"		
+		--metal_top="9K" --mim_option="B"  --metal_level=5	--run_name="DRC-Option-C"
 
 #=================================
-# -------- test-DRC_switch -------
+# -------- test-DRC-switch -------
 #=================================
 
 .ONESHELL:
-test-DRC_switch: 	
+test-DRC-switch:
 	@cd $(Testing_DIR)
 	@echo "========== DRC-Switch testing =========="
 	@python3 run_switch_checking.py
@@ -168,13 +168,13 @@
 	@echo "\n ==== The following are some of the valid targets for this Makefile ====\n"
 	@echo "... all                        			(the default if no target is provided             )"
 	@echo "... clean                      			(To clean all old runs                            )"
-	@echo "... test-DRC_switch            			(To run switch checking regression                )"
-	@echo "... test-DRC_SC                			(To run standard cells DRC regression             )"
+	@echo "... test-DRC-switch            			(To run switch checking regression                )"
+	@echo "... test-DRC-SC                			(To run standard cells DRC regression             )"
 	@echo "... test-DRC-gf180mcu_fd_ip_sram			(To run SRAM IP cells DRC regression 	          )"
 	@echo "... test-DRC-gf180mcu_fd_io				(To run I/O cells DRC regression             	  )"
 	@echo "... test-DRC-gf180mcu_fd_sc_mcu7t5v0		(To run standard cells 7 tracks DRC regression    )"
 	@echo "... test-DRC-gf180mcu_fd_sc_mcu9t5v0		(To run standard cells 9 tracks DRC regression    )"
-	@echo "... test-DRC_main              			(To run main DRC full regression                  )"
+	@echo "... test-DRC-main              			(To run main DRC full regression                  )"
 	@echo "... test-DRC-foundry-Option-1  			(To run main DRC regression using foundry-Option-1)"
 	@echo "... test-DRC-foundry-Option-2  			(To run main DRC regression using foundry-Option-2)"
 	@echo "... test-DRC-foundry-Option-3  			(To run main DRC regression using foundry-Option-3)"
diff --git a/rules/klayout/lvs/testing/Makefile b/rules/klayout/lvs/testing/Makefile
index 5656b9c..6f67766 100644
--- a/rules/klayout/lvs/testing/Makefile
+++ b/rules/klayout/lvs/testing/Makefile
@@ -24,7 +24,7 @@
 
 all: test-LVS
 
-test-LVS: Add_run-dir  test-LVS_switch  test-LVS-gf180mcu_fd_sc  test-LVS_main
+test-LVS: Add_run-dir  test-LVS-switch  test-LVS-gf180mcu_fd_sc  test-LVS-main
 
 #=================================
 # --------- RUN FOLDER ----------
@@ -36,7 +36,7 @@
 	@ mkdir -p $(run_folder)/switch_checking  $(run_folder)/main $(run_folder)/gf180mcu_fd_sc_mcu7t5v0 $(run_folder)/gf180mcu_fd_sc_mcu9t5v0 $(run_folder)/gf180mcu_fd_io $(run_folder)/gf180mcu_fd_ip_sram
 
 #=================================
-# --------- test-LVS_SC ----------
+# --------- test-LVS-SC ----------
 #=================================
 
 .ONESHELL:
@@ -67,7 +67,7 @@
 #=================================
 
 .ONESHELL:
-test-LVS_main: test-LVS_MOS  test-LVS_BJT  test-LVS_DIODE  test-LVS_RES  test-LVS_MIMCAP  test-LVS_MOSCAP  test-LVS_MOS-SAB
+test-LVS-main: test-LVS_MOS  test-LVS_BJT  test-LVS_DIODE  test-LVS_RES  test-LVS_MIMCAP  test-LVS_MOSCAP  test-LVS_MOS-SAB
 
 .ONESHELL:
 test-LVS_MOS: Add_run-dir
@@ -112,11 +112,11 @@
 	@ python3 run_regression.py  --run_dir=$(run_folder)/main --device=MOS-SAB |& tee $(run_folder)/main/LVS_MOS-SAB/results.log
 
 #=================================
-# -------- test-LVS_switch -------
+# -------- test-LVS-switch -------
 #=================================
 
 .ONESHELL:
-test-LVS_switch: Add_run-dir	
+test-LVS-switch: Add_run-dir
 	@cd $(Testing_DIR)
 	@cd ..
 	@echo "========== LVS-Switch testing =========="
@@ -135,9 +135,9 @@
 	@echo "... all                  	(the default if no target is provided          )"
 	@echo "... Add_run-dir          	(Create output directory of all runs           )"
 	@echo "... test-LVS             	(To run LVS full regression                    )"
-	@echo "... test-LVS_switch      	(To run switch checking regression             )"
+	@echo "... test-LVS-switch      	(To run switch checking regression             )"
 	@echo "... test-LVS-gf180mcu_fd_sc	(To run standard cells LVS regression          )"
-	@echo "... test-LVS_main        	(To run main LVS regression for all devices    )"
+	@echo "... test-LVS-main        	(To run main LVS regression for all devices    )"
 	@echo "... test-LVS_MOS         	(To run main LVS regression for MOS devices    )"
 	@echo "... test-LVS_BJT         	(To run main LVS regression for BJT devices    )"
 	@echo "... test-LVS_DIODE       	(To run main LVS regression for diode devices  )"