diff --git a/.github/workflows/update-major-version-tag.yaml b/.github/workflows/update-major-version-tag.yaml
new file mode 100644
index 0000000..f17d48b
--- /dev/null
+++ b/.github/workflows/update-major-version-tag.yaml
@@ -0,0 +1,31 @@
+name: Update Major Version Tag
+run-name: Move ${{ github.event.inputs.major_version }} to ${{ github.event.inputs.target }}
+
+on:
+  workflow_dispatch:
+    inputs:
+      target:
+        description: The tag or reference to use
+        required: true
+      major_version:
+        type: choice
+        description: The major version to update
+        options:
+          - v1
+
+jobs:
+  tag:
+    runs-on: ubuntu-latest
+    steps:
+    # Note this update workflow can also be used as a rollback a major version tag
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+    - name: Git config
+      run: |
+        git config --global user.name 'GitHub Actions'
+        git config --global user.email 'actions@github.com'
+    - name: Tag new target
+      run: git tag -f ${{ github.event.inputs.major_version }} ${{ github.event.inputs.target }}
+    - name: Push new tag
+      run: git push origin ${{ github.event.inputs.major_version }} --force
\ No newline at end of file