diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml
index a884a90cc30..b4f993f27ac 100644
--- a/.github/workflows/core.yml
+++ b/.github/workflows/core.yml
@@ -10,7 +10,7 @@ on:
     - cron:  '0 7 * * *'
 
 jobs:
-  pod_lib_lint:
+  pod-lib-lint:
     runs-on: macOS-latest
 
     strategy:
@@ -34,7 +34,7 @@ jobs:
           # Tests are skipped since the Swift tests need modules.
           '--skip-tests --use-libraries'
         ]
-    needs: pod_lib_lint
+    needs: pod-lib-lint
     steps:
     - uses: actions/checkout@v2
     - name: Setup Bundler
diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml
new file mode 100644
index 00000000000..7688f3c8ebe
--- /dev/null
+++ b/.github/workflows/messaging.yml
@@ -0,0 +1,76 @@
+name: messaging
+
+on:
+  pull_request:
+    paths:
+    - 'Firebase/Messaging/**'
+
+    #Podspec
+    - 'FirebaseMessaging.podspec'
+
+    - '.github/workflows/messaging.yml'
+  schedule:
+    # Run every day at 11pm (PST) - cron uses UTC times
+    - cron:  '0 7 * * *'
+
+jobs:
+  pod-lib-lint:
+    runs-on: macOS-latest
+
+    strategy:
+      matrix:
+        target: [ios, tvos, macos]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: Build and test
+      run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=${{ matrix.target }}
+
+  pod-lib-lint-watchos:
+    runs-on: macOS-latest
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: Build and test
+      run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --skip-tests --platforms=watchos
+
+
+  messaging-cron-only:
+    runs-on: macos-latest
+    if: github.event_name == 'schedule'
+    strategy:
+      matrix:
+        target: [ios, tvos, macos]
+        flags: [
+          '--use-modular-headers',
+          '--skip-tests --use-libraries'
+        ]
+    needs: pod-lib-lint
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: PodLibLint Messaging Cron
+      run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=${{ matrix.target }}
+
+  messaging-watchos-cron-only:
+    runs-on: macos-latest
+    if: github.event_name == 'schedule'
+    strategy:
+      matrix:
+        flags: [
+          '--skip-tests --use-modular-headers',
+          '--skip-tests --use-libraries'
+        ]
+    needs: pod-lib-lint-watchos
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: PodLibLint Messaging Cron
+      run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=watchos
+
+
diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml
index 9403408fa93..ce81ca49a2d 100644
--- a/.github/workflows/storage.yml
+++ b/.github/workflows/storage.yml
@@ -24,7 +24,7 @@ jobs:
     - name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10
       run: scripts/third_party/travis/retry.sh scripts/build.sh Storage all
 
-  pod_lib_lint:
+  pod-lib-lint:
     runs-on: macOS-latest
 
     strategy:
@@ -47,7 +47,7 @@ jobs:
           '--skip-tests --use-modular-headers',
           '--skip-tests --use-libraries'
         ]
-    needs: pod_lib_lint
+    needs: pod-lib-lint
     steps:
     - uses: actions/checkout@v2
     - name: Setup Bundler
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/Podfile b/Example/watchOSSample/Podfile
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/Podfile
rename to Example/watchOSSample/Podfile
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchApp.xcodeproj/project.pbxproj b/Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchApp.xcodeproj/project.pbxproj
rename to Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitApp/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitApp/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Assets.xcassets/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitApp/Assets.xcassets/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Assets.xcassets/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitApp/Assets.xcassets/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Base.lproj/Interface.storyboard b/Example/watchOSSample/SampleWatchAppWatchKitApp/Base.lproj/Interface.storyboard
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Base.lproj/Interface.storyboard
rename to Example/watchOSSample/SampleWatchAppWatchKitApp/Base.lproj/Interface.storyboard
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Info.plist b/Example/watchOSSample/SampleWatchAppWatchKitApp/Info.plist
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitApp/Info.plist
rename to Example/watchOSSample/SampleWatchAppWatchKitApp/Info.plist
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Contents.json b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Contents.json
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Assets.xcassets/Contents.json
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Assets.xcassets/Contents.json
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/ComplicationController.swift b/Example/watchOSSample/SampleWatchAppWatchKitExtension/ComplicationController.swift
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/ComplicationController.swift
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/ComplicationController.swift
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/ExtensionDelegate.swift b/Example/watchOSSample/SampleWatchAppWatchKitExtension/ExtensionDelegate.swift
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/ExtensionDelegate.swift
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/ExtensionDelegate.swift
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Info.plist b/Example/watchOSSample/SampleWatchAppWatchKitExtension/Info.plist
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/Info.plist
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/Info.plist
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/InterfaceController.swift b/Example/watchOSSample/SampleWatchAppWatchKitExtension/InterfaceController.swift
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/InterfaceController.swift
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/InterfaceController.swift
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/NotificationController.swift b/Example/watchOSSample/SampleWatchAppWatchKitExtension/NotificationController.swift
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/NotificationController.swift
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/NotificationController.swift
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/PushNotificationPayload.apns b/Example/watchOSSample/SampleWatchAppWatchKitExtension/PushNotificationPayload.apns
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/PushNotificationPayload.apns
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/PushNotificationPayload.apns
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/SampleWatchAppWatchKitExtension.entitlements b/Example/watchOSSample/SampleWatchAppWatchKitExtension/SampleWatchAppWatchKitExtension.entitlements
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/SampleWatchAppWatchKitExtension/SampleWatchAppWatchKitExtension.entitlements
rename to Example/watchOSSample/SampleWatchAppWatchKitExtension/SampleWatchAppWatchKitExtension.entitlements
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/ServiceExtension/Info.plist b/Example/watchOSSample/ServiceExtension/Info.plist
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/ServiceExtension/Info.plist
rename to Example/watchOSSample/ServiceExtension/Info.plist
diff --git a/Example/Messaging/App/watchOS/SampleWatchApp/ServiceExtension/NotificationService.swift b/Example/watchOSSample/ServiceExtension/NotificationService.swift
similarity index 100%
rename from Example/Messaging/App/watchOS/SampleWatchApp/ServiceExtension/NotificationService.swift
rename to Example/watchOSSample/ServiceExtension/NotificationService.swift