diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml
index ce7e1ec6a52b719e40ee1d7b159652e9fbf647fe..17650ef9d6456a7758392443d23813cecd5cbd77 100644
--- a/.github/workflows/artifacts.yml
+++ b/.github/workflows/artifacts.yml
@@ -20,7 +20,7 @@ jobs:
     steps:
       - name: Set PATH
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install newer Python3
         run: |
           add-apt-repository ppa:deadsnakes/ppa
@@ -58,9 +58,9 @@ jobs:
           sudo chmod 755 /opt/cabal/3.4/bin/cabal
       - name: Set PATH
         run: |
-          echo "::add-path::/opt/ghc/8.6.5/bin"
-          echo "::add-path::/opt/cabal/3.4/bin"
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - uses: actions/checkout@v2
       - name: Package project
         run: |
@@ -84,8 +84,8 @@ jobs:
       - name: Set PATH
         run: |
           [Environment]::GetEnvironmentVariable("Path")
-          Write-Host "::add-path::C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0"
-          Write-Host "::add-path::C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin"
+          Write-Output "C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" | Out-File $Env:GITHUB_PATH
+          Write-Output "C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" | Out-File $Env:GITHUB_PATH
       - name: Print versions
         run: |
           ghc --version
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 64f31f2d5c0434bb015eb0c1cfa5b436c97b39d7..56de0198661c79f09d381a99791cf66dac59adcb 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -27,10 +27,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -74,10 +74,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -122,10 +122,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -170,10 +170,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -218,10 +218,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -266,10 +266,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -314,10 +314,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -362,10 +362,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -404,10 +404,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
@@ -450,10 +450,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index c42001da545f7883f9f6d0f60488f790a3e32b13..65b759b1df9bf92632a305e7e912e84dd908d0ba 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -45,9 +45,9 @@ jobs:
           sudo chmod 755 /opt/cabal/3.4/bin/cabal
       - name: Set PATH
         run: |
-          echo "::add-path::/opt/ghc/8.8.3/bin"
-          echo "::add-path::/opt/cabal/3.4/bin"
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "/opt/ghc/8.8.3/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Update Hackage index
         run: cabal v2-update
       - name: Install cabal-plan
@@ -100,9 +100,9 @@ jobs:
           sudo chmod 755 /opt/cabal/3.4/bin/cabal
       - name: Set PATH
         run: |
-          echo "::add-path::/opt/ghc/8.6.5/bin"
-          echo "::add-path::/opt/cabal/3.4/bin"
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Update Hackage index
         run: cabal v2-update
       - name: Install cabal-plan
diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml
index 0e870dabf6386e7d265dbdde04e4532ed4263c2b..5ce20d46eceb96c2285cd422dead562f3b53cba3 100644
--- a/.github/workflows/quick-jobs.yml
+++ b/.github/workflows/quick-jobs.yml
@@ -23,10 +23,11 @@ jobs:
     # This job is not run in a container, any recent GHC should be fine
     steps:
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
-          echo "::add-path::/opt/cabal/3.2/bin"
-          echo "::add-path::/opt/ghc/8.6.5/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
       - uses: actions/cache@v1
         with:
           path: ~/.cabal/store
@@ -53,9 +54,9 @@ jobs:
     steps:
       - name: Set PATH
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
-          echo "::add-path::/opt/cabal/3.2/bin"
-          echo "::add-path::/opt/ghc/8.6.5/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
       - name: Install cabal-env
         run: |
           mkdir -p $HOME/.cabal/bin
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 9fe163a13457972b2992ed3821f659a8df8d8815..03c0b123683c65d6045173eebb3f438a5921b5e3 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -22,18 +22,10 @@ jobs:
     name: test ghc-8.6.5
     runs-on: windows-latest
     steps:
-      - name: Install Cabal
-        run: choco install -fy cabal --version 3.2.0.0
-      - name: Install GHC
-        run: |
-          choco uninstall -y ghc --all-versions
-          choco install -y ghc --version 8.6.5
-      - name: Set PATH
-        run: |
-          [Environment]::GetEnvironmentVariable("Path")
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\cabal\tools\cabal-3.2.0.0"
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\ghc\tools\ghc-8.6.5\bin"
-          [Environment]::GetEnvironmentVariable("Path")
+      - uses: actions/setup-haskell@v1.1.4
+        with:
+          ghc-version: '8.6.5'
+          cabal-version: '3.2.0.0'
       - name: Print versions
         run: |
           [Environment]::GetEnvironmentVariable("Path")
@@ -80,18 +72,10 @@ jobs:
     name: test ghc-8.8.4
     runs-on: windows-latest
     steps:
-      - name: Install Cabal
-        run: choco install -fy cabal --version 3.2.0.0
-      - name: Install GHC
-        run: |
-          choco uninstall -y ghc --all-versions
-          choco install -y ghc --version 8.8.4
-      - name: Set PATH
-        run: |
-          [Environment]::GetEnvironmentVariable("Path")
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\cabal\tools\cabal-3.2.0.0"
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\ghc\tools\ghc-8.8.4\bin"
-          [Environment]::GetEnvironmentVariable("Path")
+      - uses: actions/setup-haskell@v1.1.4
+        with:
+          ghc-version: '8.8.4'
+          cabal-version: '3.2.0.0'
       - name: Print versions
         run: |
           [Environment]::GetEnvironmentVariable("Path")
diff --git a/templates/ci-artifacts.template.yml b/templates/ci-artifacts.template.yml
index ce7e1ec6a52b719e40ee1d7b159652e9fbf647fe..17650ef9d6456a7758392443d23813cecd5cbd77 100644
--- a/templates/ci-artifacts.template.yml
+++ b/templates/ci-artifacts.template.yml
@@ -20,7 +20,7 @@ jobs:
     steps:
       - name: Set PATH
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install newer Python3
         run: |
           add-apt-repository ppa:deadsnakes/ppa
@@ -58,9 +58,9 @@ jobs:
           sudo chmod 755 /opt/cabal/3.4/bin/cabal
       - name: Set PATH
         run: |
-          echo "::add-path::/opt/ghc/8.6.5/bin"
-          echo "::add-path::/opt/cabal/3.4/bin"
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - uses: actions/checkout@v2
       - name: Package project
         run: |
@@ -84,8 +84,8 @@ jobs:
       - name: Set PATH
         run: |
           [Environment]::GetEnvironmentVariable("Path")
-          Write-Host "::add-path::C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0"
-          Write-Host "::add-path::C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin"
+          Write-Output "C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" | Out-File $Env:GITHUB_PATH
+          Write-Output "C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" | Out-File $Env:GITHUB_PATH
       - name: Print versions
         run: |
           ghc --version
diff --git a/templates/ci-linux.template.yml b/templates/ci-linux.template.yml
index 401adf17dda267a83a2e7e0af43464d724d07a4b..8d14b51eec5086a900cfc75b8fcd4f7597bdd7a5 100644
--- a/templates/ci-linux.template.yml
+++ b/templates/ci-linux.template.yml
@@ -30,10 +30,10 @@ jobs:
       - name: System info
         run: |
           uname -a
-      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Install cabal-plan
         run: |
           mkdir -p $HOME/.cabal/bin
diff --git a/templates/ci-macos.template.yml b/templates/ci-macos.template.yml
index 4e2661f40cab094da3ebd0b2c082e89560b8aa0a..98b56eb7f2c5b9033dd3e5db57b32669378cb6b4 100644
--- a/templates/ci-macos.template.yml
+++ b/templates/ci-macos.template.yml
@@ -49,9 +49,9 @@ jobs:
           sudo chmod 755 /opt/cabal/3.4/bin/cabal
       - name: Set PATH
         run: |
-          echo "::add-path::/opt/ghc/{{job.version}}/bin"
-          echo "::add-path::/opt/cabal/3.4/bin"
-          echo "::add-path::$HOME/.cabal/bin"
+          echo "/opt/ghc/{{job.version}}/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
       - name: Update Hackage index
         run: cabal v2-update
       - name: Install cabal-plan
diff --git a/templates/ci-quick-jobs.template.yml b/templates/ci-quick-jobs.template.yml
index 0e870dabf6386e7d265dbdde04e4532ed4263c2b..5ce20d46eceb96c2285cd422dead562f3b53cba3 100644
--- a/templates/ci-quick-jobs.template.yml
+++ b/templates/ci-quick-jobs.template.yml
@@ -23,10 +23,11 @@ jobs:
     # This job is not run in a container, any recent GHC should be fine
     steps:
       - name: Set PATH
+        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
-          echo "::add-path::/opt/cabal/3.2/bin"
-          echo "::add-path::/opt/ghc/8.6.5/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
       - uses: actions/cache@v1
         with:
           path: ~/.cabal/store
@@ -53,9 +54,9 @@ jobs:
     steps:
       - name: Set PATH
         run: |
-          echo "::add-path::$HOME/.cabal/bin"
-          echo "::add-path::/opt/cabal/3.2/bin"
-          echo "::add-path::/opt/ghc/8.6.5/bin"
+          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
+          echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH
+          echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH
       - name: Install cabal-env
         run: |
           mkdir -p $HOME/.cabal/bin
diff --git a/templates/ci-windows.template.yml b/templates/ci-windows.template.yml
index ebc3ad84ea43ce99e7ce6242546c146208ca9597..8a37f2f241d736867b14540ea64dcb121700b06d 100644
--- a/templates/ci-windows.template.yml
+++ b/templates/ci-windows.template.yml
@@ -29,18 +29,10 @@ jobs:
     needs: test-windows-{{ mangleVersion needs }}
 {% endfor %}
     steps:
-      - name: Install Cabal
-        run: choco install -fy cabal --version 3.2.0.0
-      - name: Install GHC
-        run: |
-          choco uninstall -y ghc --all-versions
-          choco install -y ghc --version {{ job.version }}
-      - name: Set PATH
-        run: |
-          [Environment]::GetEnvironmentVariable("Path")
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\cabal\tools\cabal-3.2.0.0"
-          Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\ghc\tools\ghc-{{ job.version }}\bin"
-          [Environment]::GetEnvironmentVariable("Path")
+      - uses: actions/setup-haskell@v1.1.4
+        with:
+          ghc-version: '{{ job.version }}'
+          cabal-version: '3.2.0.0'
       - name: Print versions
         run: |
           [Environment]::GetEnvironmentVariable("Path")