diff --git a/README.md b/README.md
index 1246b1b5cdc608b64e8bb2c713f466db7762eb64..b5e45869d772e0dc55768f7d82705e27dd174616 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
 # GitLab CI for WordPress
 
-Shared `.gitlab-ci.yml` components for WordPress plugins and themes.
+Shared `.gitlab-ci.yml` components for WordPress.
+
+## Features
+
+* `plugins`: PHPUnit, PHPCS, and deploys to WordPress.org.
+* `pantheon`: deploy a site to Pantheon via their git integration.
diff --git a/pantheon/default.yml b/pantheon/default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dcbb121a12e423a4306f0cb57ea8bc5e1f004e7c
--- /dev/null
+++ b/pantheon/default.yml
@@ -0,0 +1,74 @@
+stages:
+  - test
+  - build
+
+variables:
+  GIT_SUBMODULE_STRATEGY: recursive
+
+test-deps:
+  stage: test
+  image: containers.ethitter.com:443/docker/images/php:7.3
+  before_script:
+    - curl -sL https://deb.nodesource.com/setup_10.x | bash -
+    - apt-get install -y nodejs
+  script:
+    - cd ${CI_PROJECT_DIR}/wp-content/mu-plugins/solr-power
+    - composer install --no-dev --no-ansi -n
+    - sed -i '/vendor\//d' .gitignore
+    - sed -i '/assets\/*/d' .gitignore
+    - npm install
+    - ./node_modules/grunt/bin/grunt
+    - rm -rf ./node_modules
+
+git-push:
+  stage: build
+  image: containers.ethitter.com:443/docker/images/php:7.3
+  only:
+    - main
+  allow_failure: false
+  before_script:
+    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
+    - eval $(ssh-agent -s)
+    - ssh-add <(echo "$GIT_SSH_PRIV_KEY")
+
+    - git config --global user.email "$GIT_USER_EMAIL"
+    - git config --global user.name "$GIT_USER_NAME"
+
+    - mkdir -p ~/.ssh
+    - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
+    - ssh-keygen -R "$PANTHEON_GIT_HOST"
+    - ssh-keyscan -t rsa -p "$PANTHEON_GIT_HOST_PORT" "$PANTHEON_GIT_HOST" >> ~/.ssh/known_hosts
+
+    - composer install --no-dev --no-ansi -n -d wp-content/mu-plugins/solr-power
+    - sed -i '/vendor\//d' wp-content/mu-plugins/solr-power/.gitignore
+    - sed -i '/assets\/*/d' wp-content/mu-plugins/solr-power/.gitignore
+
+    - curl -sL https://deb.nodesource.com/setup_10.x | bash -
+    - apt-get install -y nodejs
+
+    - cd ${CI_PROJECT_DIR}/wp-content/mu-plugins/solr-power
+    - npm install
+    - ./node_modules/grunt/bin/grunt
+    - rm -rf ./node_modules
+    # TODO: add Terminus to handle pushes and cache clearing.
+  script:
+    - cd ${CI_PROJECT_DIR}
+    - ls -la
+    - rm -rf ${CI_PROJECT_DIR}/.git/
+    - rm -rf ${CI_PROJECT_DIR}/.gitignore
+    - rm -rf ${CI_PROJECT_DIR}/.gitmodules
+    - rm -rf ${CI_PROJECT_DIR}/.gitlab-ci.yml
+    - rm -rf ${CI_PROJECT_DIR}/README.md
+    - rm -rf ${CI_PROJECT_DIR}/readme.txt
+    - ls -la
+
+    - git init
+    - git remote add pantheon "$PANTHEON_GIT_REMOTE"
+    - git status -s
+    - git add -A
+    - git status -s
+    - git commit -m "Build from $CI_COMMIT_SHORT_SHA"
+    - git diff --exit-code
+    - git status -s
+    - git log -n 1
+    - git push --force pantheon master