From 41d41ae5c6f62f50ddff5d9d1aee2c959221c88e Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 17:18:00 +0500
Subject: [PATCH 01/17] testing uploading artifacts

---
 .github/workflows/csharp.yml | 79 ++++++++----------------------------
 1 file changed, 18 insertions(+), 61 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index defc468a..c026a19e 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -6,39 +6,12 @@ on:
     branches: [master]
   pull_request:
     branches: [master]
+    
+env:
+  RELEASE_BRANCH: "3.3.x"
 
 jobs:
-  lint_code_base:
-    runs-on: ubuntu-latest
-    name: Lint Code Base
-    steps:
-      - name: Checkout Code
-        uses: actions/checkout@v3
-        with:
-          # Full git history is needed to get a proper list of changed files
-          fetch-depth: 0
-      - name: Lint Code Base
-        uses: github/super-linter@v4
-        env:
-          VALIDATE_ALL_CODEBASE: false
-          DEFAULT_BRANCH: master
-          VALIDATE_CSHARP: true
-          VALIDATE_MARKDOWN: true
 
-  integration_tests:
-    uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
-    secrets:
-      CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
-      TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
-      
-  fullstack_production_suite:
-    uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
-    with:
-      FULLSTACK_TEST_REPO: ProdTesting
-    secrets:
-      CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
-      TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
-  
   unit_test:
     runs-on: ubuntu-latest
     steps:
@@ -60,36 +33,20 @@ jobs:
       - name: find and sign dll
         run: |
           sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
-
-    
-  netStandard16:
-    runs-on: windows-2022
-    steps:
-      - uses: actions/checkout@v3
-      - name: Setup .NET
-        uses: actions/setup-dotnet@v2
-        with:
-          dotnet-version: 3.1.x
-      - name: Restore dependencies
-        run: dotnet restore OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj
-      - name: Build
+      - name: Set the env
+        if: always() && steps.integration_testing.outcome == 'success'
         run: |
-          # strongname signing is taken care of in build step
-          dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
-          # TODO: no dotnet test yet for NetStandard16
-
-  netStandard20:
-    runs-on: windows-2022
-    steps:
-      - uses: actions/checkout@v3
-      - name: Setup .NET
-        uses: actions/setup-dotnet@v2
-        with:
-          dotnet-version: 3.1.x
-      - name: Restore dependencies
-        run: dotnet restore OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj
-      - name: Build
+          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
+          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
+          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
+          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
+          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
+      - name: Check on success
+        if: always() && steps.integration_testing.outcome == 'success'
+        env:
+          AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
+          AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
+          AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          # strongname signing is taken care of in build step
-          dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
-          # TODO: no dotnet test yet for NetStandard16
+          ([ ${GITHUB_REF##*/} = "$RELEASE_BRANCH" ] && [ ${EVENT_TYPE} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=$OFTA_KEY AWS_SECRET_ACCESS_KEY=$OFTA_SECRET AWS_DEFAULT_REGION=$OFTA_REGION aws s3 cp $file s3://optly-fs-travisci-artifacts/${REPO_SLUG}/${BUILD_NUMBER}/${RUN_NUMBER}/${ATTEMPT_NUM}/$(basename $file)-unsigned); done
+ 
\ No newline at end of file

From b12c40d13e36e80d2dfc1f221249400d9929599b Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 17:23:18 +0500
Subject: [PATCH 02/17] fixed

---
 .github/workflows/csharp.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index c026a19e..461d3148 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -31,10 +31,11 @@ jobs:
           xbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release ./OptimizelySDK.Travis.sln
           mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe ./OptimizelySDK.Tests/bin/Release/OptimizelySDK.Tests.dll
       - name: find and sign dll
+        id: unit_tests
         run: |
           sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
       - name: Set the env
-        if: always() && steps.integration_testing.outcome == 'success'
+        if: always() && steps.unit_tests.outcome == 'success'
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -42,7 +43,7 @@ jobs:
           echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: always() && steps.integration_testing.outcome == 'success'
+        if: always() && steps.unit_tests.outcome == 'success'
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}

From a37074e68322b0b30c6c7d17c1f0ef45d6fb39f3 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 17:39:16 +0500
Subject: [PATCH 03/17] fix

---
 .github/workflows/csharp.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 461d3148..aac70fe8 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -48,6 +48,7 @@ jobs:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
+          CURRENT_BRANCH: ${GITHUB_REF##*/}
         run: |
-          ([ ${GITHUB_REF##*/} = "$RELEASE_BRANCH" ] && [ ${EVENT_TYPE} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=$OFTA_KEY AWS_SECRET_ACCESS_KEY=$OFTA_SECRET AWS_DEFAULT_REGION=$OFTA_REGION aws s3 cp $file s3://optly-fs-travisci-artifacts/${REPO_SLUG}/${BUILD_NUMBER}/${RUN_NUMBER}/${ATTEMPT_NUM}/$(basename $file)-unsigned); done
+          ([  ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [  ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
  
\ No newline at end of file

From 2765c19f635a5b8a7a0485ebbaf640769c6d6da9 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 17:44:09 +0500
Subject: [PATCH 04/17] fixed

---
 .github/workflows/csharp.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index aac70fe8..22e7ecd1 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -42,13 +42,13 @@ jobs:
           echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
           echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
+          echo "CURRENT_BRANCH=${{ github.ref }}" >> $GITHUB_ENV
       - name: Check on success
         if: always() && steps.unit_tests.outcome == 'success'
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
-          CURRENT_BRANCH: ${GITHUB_REF##*/}
         run: |
-          ([  ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [  ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
+          ([ ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [  ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
  
\ No newline at end of file

From 619571c80624eabf45db5f390b21ab36442c66ca Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 17:53:31 +0500
Subject: [PATCH 05/17] fix

---
 .github/workflows/csharp.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 22e7ecd1..211051e8 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -42,7 +42,7 @@ jobs:
           echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
           echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
-          echo "CURRENT_BRANCH=${{ github.ref }}" >> $GITHUB_ENV
+          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
         if: always() && steps.unit_tests.outcome == 'success'
         env:
@@ -50,5 +50,5 @@ jobs:
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          ([ ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [  ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
+          ([ ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [ ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
  
\ No newline at end of file

From 7611bd87e66950b6b82a8c9b8f1897b8ac0bacc5 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:13:09 +0500
Subject: [PATCH 06/17] test

---
 .github/workflows/csharp.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 211051e8..2c08e086 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -50,5 +50,6 @@ jobs:
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          ([ ${{ env.CURRENT_BRANCH }} = ${{ env.RELEASE_BRANCH }} ] && [ ${{ env.EVENT_TYPE }} = "push" ]) && find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
+          
+          find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
  
\ No newline at end of file

From 1a3a9962c1d8c3cc1b11b8a78549d1d3182f6482 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:17:10 +0500
Subject: [PATCH 07/17] set

---
 .github/workflows/csharp.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 2c08e086..b221a559 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -44,12 +44,11 @@ jobs:
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
           echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: always() && steps.unit_tests.outcome == 'success'
+        if: always() && steps.unit_tests.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          
           find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
  
\ No newline at end of file

From fa389ba3af2e674f1154a995af92fa66c8aaf0ea Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:29:57 +0500
Subject: [PATCH 08/17] adding netstandard 16 and 20 back and uploading
 artifacts

---
 .github/workflows/csharp.yml | 69 +++++++++++++++++++++++++++++++++++-
 1 file changed, 68 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index b221a559..0d752666 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -51,4 +51,71 @@ jobs:
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
           find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
- 
\ No newline at end of file
+
+  netStandard16:
+    runs-on: windows-2022
+    steps:
+      - uses: actions/checkout@v3
+      - name: Setup .NET
+        uses: actions/setup-dotnet@v2
+        with:
+          dotnet-version: 3.1.x
+      - name: Restore dependencies
+        run: dotnet restore OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj
+      - name: Build
+        id: netStandard16_build
+        run: |
+          # strongname signing is taken care of in build step
+          dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
+          # TODO: no dotnet test yet for NetStandard16
+      - name: Set the env
+        if: always() && steps.netStandard16_build.outcome == 'success'
+        run: |
+          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
+          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
+          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
+          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
+          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
+          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
+      - name: Check on success
+        if: always() && steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        env:
+          AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
+          AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
+          AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
+        run: |
+          (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned)
+
+  netStandard20:
+    runs-on: windows-2022
+    steps:
+      - uses: actions/checkout@v3
+      - name: Setup .NET
+        uses: actions/setup-dotnet@v2
+        with:
+          dotnet-version: 3.1.x
+      - name: Restore dependencies
+        run: dotnet restore OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj
+      - name: Build
+        id: netStandard20_build
+        run: |
+          # strongname signing is taken care of in build step
+          dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
+          # TODO: no dotnet test yet for NetStandard20
+      - name: Set the env
+        if: always() && steps.netStandard20_build.outcome == 'success'
+        run: |
+          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
+          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
+          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
+          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
+          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
+          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
+      - name: Check on success
+        if: always() && steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        env:
+          AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
+          AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
+          AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
+        run: |
+          (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp ./OptimizelySDK.NetStandard20/bin/Release/netstandard2.0/OptimizelySDK.NetStandard20.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard20.dll-unsigned)

From 24361a19037e92dc9ef454232d6aaa96edc3e775 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:37:48 +0500
Subject: [PATCH 09/17] test

---
 .github/workflows/csharp.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 0d752666..89708980 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -84,7 +84,7 @@ jobs:
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned)
+          aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned
 
   netStandard20:
     runs-on: windows-2022
@@ -118,4 +118,4 @@ jobs:
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp ./OptimizelySDK.NetStandard20/bin/Release/netstandard2.0/OptimizelySDK.NetStandard20.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard20.dll-unsigned)
+          aws s3 cp ./OptimizelySDK.NetStandard20/bin/Release/netstandard2.0/OptimizelySDK.NetStandard20.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard20.dll-unsigned

From 3e83f7ace115606ff164834c0f38d45a3a3ffaf8 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:45:18 +0500
Subject: [PATCH 10/17] test

---
 .github/workflows/csharp.yml | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 89708980..84fd0ae7 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -35,7 +35,7 @@ jobs:
         run: |
           sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
       - name: Set the env
-        if: always() && steps.unit_tests.outcome == 'success'
+        if: steps.unit_tests.outcome == 'success'
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -44,7 +44,7 @@ jobs:
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
           echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: always() && steps.unit_tests.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.unit_tests.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
@@ -69,7 +69,6 @@ jobs:
           dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard16
       - name: Set the env
-        if: always() && steps.netStandard16_build.outcome == 'success'
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -78,13 +77,13 @@ jobs:
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
           echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: always() && steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned
+          (aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned)
 
   netStandard20:
     runs-on: windows-2022
@@ -103,7 +102,7 @@ jobs:
           dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard20
       - name: Set the env
-        if: always() && steps.netStandard20_build.outcome == 'success'
+        if: steps.netStandard20_build.outcome == 'success'
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -112,10 +111,10 @@ jobs:
           echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
           echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: always() && steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          aws s3 cp ./OptimizelySDK.NetStandard20/bin/Release/netstandard2.0/OptimizelySDK.NetStandard20.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard20.dll-unsigned
+          (aws s3 cp ./OptimizelySDK.NetStandard20/bin/Release/netstandard2.0/OptimizelySDK.NetStandard20.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard20.dll-unsigned)

From af37ece04e95e04f89d5535e35de314e83324e6f Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 18:55:29 +0500
Subject: [PATCH 11/17] test

---
 .github/workflows/csharp.yml | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 84fd0ae7..461e805b 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -69,6 +69,13 @@ jobs:
           dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard16
       - name: Set the env
+        env:
+          REPO_SLUG: ${{ github.repository }}
+          BUILD_NUMBER: ${{ github.run_id }}
+          ATTEMPT_NUM: ${{ github.run_attempt }}
+          RUN_NUMBER: ${{ github.run_number }}
+          EVENT_TYPE: ${{ github.event_name }}
+          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -79,6 +86,12 @@ jobs:
       - name: Check on success
         if: steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
+          REPO_SLUG: ${{ github.repository }}
+          BUILD_NUMBER: ${{ github.run_id }}
+          ATTEMPT_NUM: ${{ github.run_attempt }}
+          RUN_NUMBER: ${{ github.run_number }}
+          EVENT_TYPE: ${{ github.event_name }}
+          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
@@ -103,6 +116,13 @@ jobs:
           # TODO: no dotnet test yet for NetStandard20
       - name: Set the env
         if: steps.netStandard20_build.outcome == 'success'
+        env:
+          REPO_SLUG: ${{ github.repository }}
+          BUILD_NUMBER: ${{ github.run_id }}
+          ATTEMPT_NUM: ${{ github.run_attempt }}
+          RUN_NUMBER: ${{ github.run_number }}
+          EVENT_TYPE: ${{ github.event_name }}
+          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
         run: |
           echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
           echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
@@ -113,6 +133,12 @@ jobs:
       - name: Check on success
         if: steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
+          REPO_SLUG: ${{ github.repository }}
+          BUILD_NUMBER: ${{ github.run_id }}
+          ATTEMPT_NUM: ${{ github.run_attempt }}
+          RUN_NUMBER: ${{ github.run_number }}
+          EVENT_TYPE: ${{ github.event_name }}
+          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}

From af3fdb5adee0d171e0f91d92900935cc235b5d5b Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 19:01:43 +0500
Subject: [PATCH 12/17] test

---
 .github/workflows/csharp.yml | 57 +++++++++---------------------------
 1 file changed, 14 insertions(+), 43 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 461e805b..4b22ccb9 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -54,6 +54,13 @@ jobs:
 
   netStandard16:
     runs-on: windows-2022
+    env:
+      REPO_SLUG: ${{ github.repository }}
+      BUILD_NUMBER: ${{ github.run_id }}
+      ATTEMPT_NUM: ${{ github.run_attempt }}
+      RUN_NUMBER: ${{ github.run_number }}
+      EVENT_TYPE: ${{ github.event_name }}
+      CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
     steps:
       - uses: actions/checkout@v3
       - name: Setup .NET
@@ -68,30 +75,9 @@ jobs:
           # strongname signing is taken care of in build step
           dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard16
-      - name: Set the env
-        env:
-          REPO_SLUG: ${{ github.repository }}
-          BUILD_NUMBER: ${{ github.run_id }}
-          ATTEMPT_NUM: ${{ github.run_attempt }}
-          RUN_NUMBER: ${{ github.run_number }}
-          EVENT_TYPE: ${{ github.event_name }}
-          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
-        run: |
-          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
-          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
-          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
-          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
-          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
-          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
         if: steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
-          REPO_SLUG: ${{ github.repository }}
-          BUILD_NUMBER: ${{ github.run_id }}
-          ATTEMPT_NUM: ${{ github.run_attempt }}
-          RUN_NUMBER: ${{ github.run_number }}
-          EVENT_TYPE: ${{ github.event_name }}
-          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
@@ -100,6 +86,13 @@ jobs:
 
   netStandard20:
     runs-on: windows-2022
+    env:
+      REPO_SLUG: ${{ github.repository }}
+      BUILD_NUMBER: ${{ github.run_id }}
+      ATTEMPT_NUM: ${{ github.run_attempt }}
+      RUN_NUMBER: ${{ github.run_number }}
+      EVENT_TYPE: ${{ github.event_name }}
+      CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
     steps:
       - uses: actions/checkout@v3
       - name: Setup .NET
@@ -114,31 +107,9 @@ jobs:
           # strongname signing is taken care of in build step
           dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard20
-      - name: Set the env
-        if: steps.netStandard20_build.outcome == 'success'
-        env:
-          REPO_SLUG: ${{ github.repository }}
-          BUILD_NUMBER: ${{ github.run_id }}
-          ATTEMPT_NUM: ${{ github.run_attempt }}
-          RUN_NUMBER: ${{ github.run_number }}
-          EVENT_TYPE: ${{ github.event_name }}
-          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
-        run: |
-          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
-          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
-          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
-          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
-          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
-          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
         if: steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
         env:
-          REPO_SLUG: ${{ github.repository }}
-          BUILD_NUMBER: ${{ github.run_id }}
-          ATTEMPT_NUM: ${{ github.run_attempt }}
-          RUN_NUMBER: ${{ github.run_number }}
-          EVENT_TYPE: ${{ github.event_name }}
-          CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}

From 2523919c3b637d2b9c25104526f66b4b77325d4e Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 19:09:01 +0500
Subject: [PATCH 13/17] test condition

---
 .github/workflows/csharp.yml | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 4b22ccb9..4a0502b0 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -14,6 +14,13 @@ jobs:
 
   unit_test:
     runs-on: ubuntu-latest
+    env:
+      REPO_SLUG: ${{ github.repository }}
+      BUILD_NUMBER: ${{ github.run_id }}
+      ATTEMPT_NUM: ${{ github.run_attempt }}
+      RUN_NUMBER: ${{ github.run_number }}
+      EVENT_TYPE: ${{ github.event_name }}
+      CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
     steps:
       - uses: actions/checkout@v3
       - name: Setup .NET
@@ -34,17 +41,8 @@ jobs:
         id: unit_tests
         run: |
           sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
-      - name: Set the env
-        if: steps.unit_tests.outcome == 'success'
-        run: |
-          echo "REPO_SLUG=${{ github.repository }}" >> $GITHUB_ENV
-          echo "BUILD_NUMBER=${{ github.run_id }}" >> $GITHUB_ENV
-          echo "ATTEMPT_NUM=${{ github.run_attempt }}" >> $GITHUB_ENV
-          echo "RUN_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
-          echo "EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV
-          echo "CURRENT_BRANCH=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
       - name: Check on success
-        if: steps.unit_tests.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.unit_tests.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
@@ -76,7 +74,7 @@ jobs:
           dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard16
       - name: Check on success
-        if: steps.netStandard16_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.netStandard16_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
@@ -108,7 +106,7 @@ jobs:
           dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard20
       - name: Check on success
-        if: steps.netStandard20_build.outcome == 'success' && ${{ env.CURRENT_BRANCH }} == ${{ env.RELEASE_BRANCH }} && ${{ env.EVENT_TYPE }} == "push"
+        if: steps.netStandard20_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}

From 6504cca44aaaa69abcd4f99f9b7ef048a7df838c Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 19:12:37 +0500
Subject: [PATCH 14/17] test

---
 .github/workflows/csharp.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 4a0502b0..5d266e4e 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -42,7 +42,7 @@ jobs:
         run: |
           sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
       - name: Check on success
-        if: steps.unit_tests.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
+        if: steps.unit_tests.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
@@ -74,7 +74,7 @@ jobs:
           dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard16
       - name: Check on success
-        if: steps.netStandard16_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
+        if: steps.netStandard16_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
@@ -106,7 +106,7 @@ jobs:
           dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
           # TODO: no dotnet test yet for NetStandard20
       - name: Check on success
-        if: steps.netStandard20_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == "push"
+        if: steps.netStandard20_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}

From e7042642375a591359cf2f989012f467adfa27c8 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 22:46:33 +0500
Subject: [PATCH 15/17] added stages back

---
 .github/workflows/csharp.yml | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 5d266e4e..a2861907 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -11,7 +11,37 @@ env:
   RELEASE_BRANCH: "3.3.x"
 
 jobs:
+  lint_code_base:
+    runs-on: ubuntu-latest
+    name: Lint Code Base
+    steps:
+      - name: Checkout Code
+        uses: actions/checkout@v3
+        with:
+          # Full git history is needed to get a proper list of changed files
+          fetch-depth: 0
+      - name: Lint Code Base
+        uses: github/super-linter@v4
+        env:
+          VALIDATE_ALL_CODEBASE: false
+          DEFAULT_BRANCH: master
+          VALIDATE_CSHARP: true
+          VALIDATE_MARKDOWN: true
 
+  integration_tests:
+    uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
+    secrets:
+      CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
+      TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
+      
+  fullstack_production_suite:
+    uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
+    with:
+      FULLSTACK_TEST_REPO: ProdTesting
+    secrets:
+      CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
+      TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
+      
   unit_test:
     runs-on: ubuntu-latest
     env:

From b17e5be355c85788e09616e73fcb08fed9563ad1 Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 22:50:22 +0500
Subject: [PATCH 16/17] fixed issue

---
 .github/workflows/csharp.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index a2861907..ba06503b 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -41,7 +41,7 @@ jobs:
     secrets:
       CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
       TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
-      
+
   unit_test:
     runs-on: ubuntu-latest
     env:
@@ -78,7 +78,7 @@ jobs:
           AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
           AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
         run: |
-          find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION=${{ env.AWS_DEFAULT_REGION }} aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
+          find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
 
   netStandard16:
     runs-on: windows-2022

From afe5009906cab695004a7597af4079e06b8a0b8e Mon Sep 17 00:00:00 2001
From: Muhammad Noman <Muhammadnoman@folio3.com>
Date: Wed, 27 Jul 2022 22:54:58 +0500
Subject: [PATCH 17/17] changed release branch to master

---
 .github/workflows/csharp.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index ba06503b..ba05e637 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -8,7 +8,7 @@ on:
     branches: [master]
     
 env:
-  RELEASE_BRANCH: "3.3.x"
+  RELEASE_BRANCH: "master"
 
 jobs:
   lint_code_base: