[FSSDK-11731] windows version update #596
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
types: [ opened, synchronize, reopened, ready_for_review ] | |
jobs: | |
lintCodebase: | |
name: Lint Codebase if Not Draft | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
# Full git history is needed to get a proper list of changed files | |
fetch-depth: 0 | |
- name: Run Super-Linter | |
uses: github/super-linter@v7 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
VALIDATE_ALL_CODEBASE: false | |
DEFAULT_BRANCH: master | |
VALIDATE_CSHARP: true | |
netFrameworksAndUnitTest: | |
name: Build Framework & Run Unit Tests | |
needs: [ lintCodebase ] | |
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: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v1 | |
- name: Setup NuGet | |
uses: NuGet/setup-nuget@v1 | |
- name: Download and Install .NET Framework Reference Assemblies | |
run: | | |
# Create temp directory | |
New-Item -ItemType Directory -Path "temp_ref_assemblies" -Force | |
# Download .NET 4.0 Reference Assemblies | |
echo "Downloading .NET 4.0 Reference Assemblies..." | |
Invoke-WebRequest -Uri "https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net40/1.0.3" -OutFile "temp_ref_assemblies/net40_ref.zip" | |
# Download .NET 4.5 Reference Assemblies | |
echo "Downloading .NET 4.5 Reference Assemblies..." | |
Invoke-WebRequest -Uri "https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net45/1.0.3" -OutFile "temp_ref_assemblies/net45_ref.zip" | |
# Extract and install .NET 4.0 | |
echo "Installing .NET 4.0 Reference Assemblies..." | |
Expand-Archive -Path "temp_ref_assemblies/net40_ref.zip" -DestinationPath "temp_ref_assemblies/net40" -Force | |
if (Test-Path "temp_ref_assemblies/net40/build/.NETFramework/v4.0") { | |
Copy-Item -Path "temp_ref_assemblies/net40/build/.NETFramework/v4.0" -Destination "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\" -Recurse -Force | |
echo "✓ .NET 4.0 Reference Assemblies installed" | |
} | |
# Extract and install .NET 4.5 | |
echo "Installing .NET 4.5 Reference Assemblies..." | |
Expand-Archive -Path "temp_ref_assemblies/net45_ref.zip" -DestinationPath "temp_ref_assemblies/net45" -Force | |
if (Test-Path "temp_ref_assemblies/net45/build/.NETFramework/v4.5") { | |
Copy-Item -Path "temp_ref_assemblies/net45/build/.NETFramework/v4.5" -Destination "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\" -Recurse -Force | |
echo "✓ .NET 4.5 Reference Assemblies installed" | |
} | |
# Cleanup | |
Remove-Item -Path "temp_ref_assemblies" -Recurse -Force | |
continue-on-error: true | |
- name: Restore NuGet packages | |
run: nuget restore ./OptimizelySDK.NETFramework.sln | |
- name: Build & strongly name assemblies | |
run: msbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release ./OptimizelySDK.NETFramework.sln | |
- name: Install & Run NUnit tests | |
run: | | |
nuget install NUnit.Console -Version 3.18.1 -DirectDownload -OutputDirectory . | |
# https://docs.nunit.org/articles/nunit/running-tests/Console-Command-Line.html | |
./NUnit.ConsoleRunner.3.18.1\tools\nunit3-console.exe /timeout 10000 /process Separate ./OptimizelySDK.Tests/bin/Release/OptimizelySDK.Tests.dll | |
netStandard16: | |
name: Build Standard 1.6 | |
needs: [ netFrameworksAndUnitTest ] | |
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: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- 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 & strongly name assemblies | |
run: dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk -c Release | |
netStandard20: | |
name: Build Standard 2.0 | |
needs: [ netFrameworksAndUnitTest ] | |
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: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- 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 & strongly name assemblies | |
run: dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk -c Release | |
integration_tests: | |
name: Run Integration Tests | |
needs: [ netFrameworksAndUnitTest, netStandard16, netStandard20 ] | |
uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master | |
secrets: | |
CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }} | |
fullstack_production_suite: | |
name: Run Performance Tests | |
needs: [ netFrameworksAndUnitTest, netStandard16, netStandard20 ] | |
uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master | |
with: | |
FULLSTACK_TEST_REPO: ProdTesting | |
secrets: | |
CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }} |