diff --git a/.github/Dockerfile b/.github/Dockerfile
deleted file mode 100644
index 84f612d..0000000
--- a/.github/Dockerfile
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2020 Efabless Corporation
-#
-# 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.
-
-# syntax = docker/dockerfile:1.0-experimental
-FROM almalinux:8 as build
-
-# Common development tools and libraries (kitchen sink approach)
-RUN yum groupinstall -y "Development Tools"
-
-# magic dependencies
-RUN yum install -y csh wget tcl-devel tk-devel libX11-devel cairo-devel ncurses-devel
-
-#General utils
-RUN yum install -y git tcl tk libjpeg libgomp libXext libSM libXft libffi cairo gettext Xvfb
-RUN yum install -y python3 python3-pip python3-tkinter python3-devel
-
-RUN git clone git://opencircuitdesign.com/magic
-
-WORKDIR magic
-
-# build
-RUN ./configure --prefix=/build && \
-    make -j4 && \
-    make install
-
-
-ENV MAGIC_ROOT=/magic_root
-ENV BUILD_PATH=/build/
-
-ENV PATH=$MAGIC_ROOT:$MAGIC_ROOT/scripts:$BUILD_PATH/bin:$BUILD_PATH/bin/Linux-x86_64:$BUILD_PATH/pdn/scripts:$PATH
-ENV LD_LIBRARY_PATH=$BUILD_PATH/lib:$BUILD_PATH/lib/Linux-x86_64:$LD_LIBRARY_PATH
-ENV MANPATH=$BUILD_PATH/share/man:$MANPATH
-
-
-RUN mkdir -p /build/version/
-
-RUN date +"Build Timestamp: %Y-%m-%d_%H-%M-%S" > /build/version/magic.version
-RUN git rev-parse HEAD >> /build/version/magic.version
-RUN tar -czf /build.tar.gz /build
-
-WORKDIR /magic_root
diff --git a/.github/Makefile b/.github/Makefile
deleted file mode 100644
index 0447bcf..0000000
--- a/.github/Makefile
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 2020 Efabless Corporation
-#
-# 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.
-
-# Adopted from OpenLANE's Makefile.
-
-OPEN_PDKS_ROOT ?= $(shell pwd)/..
-THREADS ?= $(shell nproc)
-STD_CELL_LIBRARY ?= sky130_fd_sc_hd
-SKYWATER_COMMIT ?= main
-
-.DEFAULT_GOAL := all
-
-.PHONY: all
-all: pdk
-
-.PHONY: pdk
-pdk: skywater-pdk skywater-library build-pdk
-
-$(PDK_ROOT)/skywater-pdk:
-	git clone https://github.com/google/skywater-pdk.git $(PDK_ROOT)/skywater-pdk
-
-.PHONY: skywater-pdk
-skywater-pdk: $(PDK_ROOT)/skywater-pdk
-	cd $(PDK_ROOT)/skywater-pdk && \
-		git checkout -qf $(SKYWATER_COMMIT)
-
-.PHONY: skywater-library
-skywater-library: $(PDK_ROOT)/skywater-pdk
-	cd $(PDK_ROOT)/skywater-pdk && \
-		git submodule update --init libraries/$(STD_CELL_LIBRARY)/latest && \
-		$(MAKE) -j$(THREADS) $(STD_CELL_LIBRARY)
-
-.PHONY: all-skywater-libraries
-all-skywater-libraries: skywater-pdk
-	cd $(PDK_ROOT)/skywater-pdk && \
-		git submodule update --init libraries/sky130_fd_sc_hd/latest && \
-		git submodule update --init libraries/sky130_fd_sc_hs/latest && \
-		git submodule update --init libraries/sky130_fd_sc_hdll/latest && \
-		git submodule update --init libraries/sky130_fd_sc_ms/latest && \
-		git submodule update --init libraries/sky130_fd_sc_ls/latest && \
-		git submodule update --init libraries/sky130_fd_sc_hvl/latest && \
-		$(MAKE) -j$(THREADS) timing
-
-.PHONY: build-pdk
-build-pdk: $(PDK_ROOT)/skywater-pdk
-	[[ -d $(PDK_ROOT)/sky130A ]] && \
-		(echo "Warning: A sky130A build already exists under $(PDK_ROOT). It will be deleted first!" && \
-		sleep 5 && \
-		rm -rf $(PDK_ROOT)/sky130A) || \
-		true
-	cd $(OPEN_PDKS_ROOT) && \
-		./configure \
-			--prefix=$(PDK_ROOT) \
-			--datarootdir=$(PDK_ROOT) \
-			--enable-sky130-pdk=$(PDK_ROOT)/skywater-pdk \
-			&& \
-		cd sky130 && \
-		$(MAKE) veryclean && \
-		$(MAKE) && \
-		$(MAKE) install-local
diff --git a/.github/build-docker.sh b/.github/build-docker.sh
deleted file mode 100755
index c92792d..0000000
--- a/.github/build-docker.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Efabless Corporation
-#
-# 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.
-
-# exit when any command fails
-set -e
-
-docker build --rm -t magic .
-
-# Copy the build.tar.gz out of the docker container
-docker run --name magic magic:latest
-docker cp magic:/build.tar.gz ./magic.tar.gz
-docker rm magic
diff --git a/.github/build.sh b/.github/build.sh
deleted file mode 100755
index 8f08cb3..0000000
--- a/.github/build.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 2020 Efabless Corporation
-#
-# 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.
-
-# exit when any command fails
-set -e
-
-export OPEN_PDKS_ROOT=$(pwd)
-export PDK_ROOT=$(pwd)/pdks
-mkdir -p $PDK_ROOT
-
-cd .github
-
-echo ::group::.github/build-docker.sh
-bash ./build-docker.sh
-echo ::endgroup::
-
-echo ::group::make skywater-pdk
-make skywater-pdk
-echo ::endgroup::
-
-if [ x"$STD_CELL_LIBRARY" = xall ]; then
-    cnt=0
-    until make all-skywater-libraries; do
-        cnt=$((cnt+1))
-        if [ $cnt -eq 5 ]; then
-            exit 2
-        fi
-        rm -rf $PDK_ROOT/skywater-pdk
-        make skywater-pdk
-    done
-else
-    cnt=0
-    until make skywater-library; do
-        cnt=$((cnt+1))
-        if [ $cnt -eq 5 ]; then
-            exit 2
-        fi
-        rm -rf $PDK_ROOT/skywater-pdk
-        make skywater-pdk
-    done
-fi
-
-cd ..
-
-docker run \
-	\
-	-v $(pwd):/some_root \
-	-v $(pwd)/.github:/build_root \
-	-v $OPEN_PDKS_ROOT:$OPEN_PDKS_ROOT \
-	-v $PDK_ROOT:$PDK_ROOT \
-	\
-	-e OPEN_PDKS_ROOT=$OPEN_PDKS_ROOT \
-	-e PDK_ROOT=$PDK_ROOT \
-	-u $(id -u $USER):$(id -g $USER) \
-	\
-	magic:latest \
-	\
-	bash -c "cd /build_root && make build-pdk"
-exit 0
diff --git a/.github/capture.sh b/.github/capture.sh
deleted file mode 100644
index 559b2fc..0000000
--- a/.github/capture.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-# Copyright 2021 Open PDKs 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.
-
-mkdir -p ${GITHUB_WORKSPACE}/output/
-
-# Copy build log.
-cp ./sky130/sky130A_install.log ${GITHUB_WORKSPACE}/output/
-
-# Copy any core dupmps into the output directory.
-find . -name core -not \( -path '*/skywater-pdk/*' -prune \) | \
-	awk -v ln=1 '{print "cp " $0 " ${GITHUB_WORKSPACE}/output/core." ln++ }' | \
-	bash
-
-# Copy the magic tarball into output
-cp .github/magic.tar.gz ${GITHUB_WORKSPACE}/output/
-
-# Try to create a deterministic tar file
-# https://reproducible-builds.org/docs/archives/
-(
-	SKY130_DIR="$(pwd)/pdks/pdk/sky130A"
-	if ! [[ -d $SKY130_DIR ]]; then
-	    echo "Missing $SKY130_DIR"
-	    exit -1
-	fi
-
-	echo ::group::PDK tarball
-
-	cd ${SKY130_DIR}
-	tar \
-		--create \
-		--bzip2 \
-		--verbose \
-		\
-		--mtime='2020-05-07 00:00Z' \
-		--sort=name \
-		--owner=0 \
-		--group=0 \
-		--numeric-owner \
-		--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
-		\
-		--file ${GITHUB_WORKSPACE}/output/pdk-SKY130A-${STD_CELL_LIBRARY}.tar.bz2 .
-
-	echo ::endgroup::
-)
-
-# Free up disk space so the GitHub Action runner doesn't die when collecting
-# the artifacts.
-echo ::group::Freeup space
-
-df -h
-
-for DIR in ${GITHUB_WORKSPACE}/*; do
-	if [ x$DIR = x"${GITHUB_WORKSPACE}/output" ]; then
-		continue
-	fi
-	echo
-	echo "Removing $DIR"
-	rm -rvf $DIR
-done
-
-df -h
-
-echo ::endgroup::
-
-# Output which files are being saved.
-echo ::group::Output files
-du -h  ${GITHUB_WORKSPACE}/output/*
-echo ::endgroup::
-
-exit 0
diff --git a/.github/test.sh b/.github/test.sh
deleted file mode 100755
index b0ef360..0000000
--- a/.github/test.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# Copyright 2020 Efabless Corporation
-#
-# 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.
-
-SKY130_DIR="$(pwd)/pdks/pdk/sky130A"
-if ! [[ -d $SKY130_DIR ]]; then
-    echo "Missing $SKY130_DIR"
-    exit -1
-fi
-
-du -h $SKY130_DIR
-
-echo ::group::Output files
-echo
-find $SKY130_DIR | sort
-echo
-echo ::endgroup::
-
-SIZE=$(du -sb $SKY130_DIR | cut -f1)
-# 250MB = 131,072,000 bytes; a fair estimate of the size of one library, I guess.
-if [[ $SIZE -lt 131072000 ]]; then
-    echo 'size is less than 125MB'
-    exit -1
-fi
-echo 'Built without fatal errors'
-echo "sky130A size is $SIZE bytes"
-exit 0
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..0c92667
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,58 @@
+name: Build
+
+on:
+  push:
+  pull_request:
+
+jobs:
+  build-and-test:
+    strategy:
+      matrix:
+        os:
+          [
+            {
+              name: "macOS 14",
+              family: "macOS",
+              runner: "macos-14",
+              archs: "arm64",
+            },
+          ]
+        pdk: [sky130, gf180mcu]
+    name: Build ${{ matrix.pdk }} with Volare | ${{ matrix.os.name }} | ${{ matrix.os.archs }}
+    runs-on: ${{ matrix.os.runner }}
+    steps:
+      - name: Clear Build Space
+        run: |
+          echo "== Before =="
+          df -h
+          for xcode in /Applications/Xcode*; do
+            echo "== Removing $xcode … =="
+            rm -rf $xcode
+          done
+          echo "== After =="
+          df -h
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - uses: DeterminateSystems/nix-installer-action@main
+        with:
+          extra-conf: |
+            extra-substituters = https://openlane.cachix.org
+            extra-trusted-public-keys = openlane.cachix.org-1:qqdwh+QMNGmZAuyeQJTH9ErW57OWSvdtuwfBKdS254E=
+      - name: Install Magic, Volare
+        run: nix profile install github:efabless/nix-eda/3d8f596ec8831538acdd61889d056378b5bea16b#magic-vlsi github:efabless/volare/0.20.6
+      - name: Set PDK root
+        run: |
+          mkdir -p root
+          echo "PDK_ROOT=$PWD/root" >> $GITHUB_ENV
+      - name: Build with Volare
+        run: |
+          volare build --include-libraries all --pdk ${{ matrix.pdk }} --use-repo-at open_pdks=$PWD --jobs $(sysctl -n hw.logicalcpu) --clear-build-artifacts $(git rev-parse HEAD)
+      - name: Push if New Tag
+        if: github.ref_type == 'tag'
+        run: |
+          if [ "${{ secrets.BOT_GH_TOKEN }}" != "" ]; then
+            volare push --pre --token ${{ secrets.BOT_GH_TOKEN }} --pdk ${{ matrix.pdk }} $(git rev-parse HEAD)
+          else
+            echo "Secret BOT_GH_TOKEN unset. Not attempting to push."
+          fi
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 638da03..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-name: CI
-
-on:
-  push:
-  pull_request:
-  workflow_dispatch:
-
-
-jobs:
-
-  Run:
-    strategy:
-      fail-fast: false
-      matrix:
-        library:
-          - sky130_fd_sc_hd
-          - sky130_fd_sc_hdll
-          - sky130_fd_sc_hs
-          - sky130_fd_sc_ms
-          - sky130_fd_sc_ls
-          - sky130_fd_sc_hvl
-          - all
-    env:
-      STD_CELL_LIBRARY: ${{ matrix.library }}
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v3
-      with:
-        fetch-depth: 0
-        submodules: true
-
-    - name: Build
-      run: |
-        bash .github/build.sh
-
-    - name: Test
-      run: |
-        bash .github/test.sh
-
-    - name: Capture
-      if: ${{ always() }}
-      run: |
-        bash .github/capture.sh
-
-    - name: Upload
-      if: ${{ always() }}
-      uses: actions/upload-artifact@v3
-      with:
-        name: ${{ matrix.library }}
-        path: ${{ github.workspace }}/output/**
