diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml
new file mode 100644
index 0000000..87cd92c
--- /dev/null
+++ b/.github/workflows/Tests.yml
@@ -0,0 +1,77 @@
+# 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
+
+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 8469b99..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 ca05c8f..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 12d147c..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 e007fea..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)
