Skip to content

Fix incorrect references to non-existent AdvancedOptions class #306

Fix incorrect references to non-existent AdvancedOptions class

Fix incorrect references to non-existent AdvancedOptions class #306

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request: ~
workflow_dispatch: ~
jobs:
lint:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.x.x
- name: Set up dotnet tools
run: just install-tools
- name: Check style with dotnet-format
run: just lint
Security_Code_Scan:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
with:
# v6 is needed for the tool to run
dotnet-version: |
10.x.x
6.x.x
- name: Set up dotnet tools and dependencies
run: just install
- name: Run security analysis
run: just scan
Coverage_Requirements:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.x.x
- name: Set up dotnet tools and dependencies
run: just install
- name: Check if test suite coverage meets requirements
run: just coverage-check
Upload_Coverage_Report:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.x.x
- name: Set up dotnet tools and dependencies
run: just install
- name: Run tests
run: just coverage
- name: Coverage
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
NET_Tests:
# derived from https://dev.to/felipetofoli/github-actions-for-net-full-framework-build-and-test-299h
runs-on: windows-latest
strategy:
matrix:
name: ['Net60', 'Net70', 'Net80', 'Net90', 'Net100']
include:
- name: Net60
framework: net6.0
dotnet-version: 6.x.x
- name: Net70
framework: net7.0
dotnet-version: 7.x.x
- name: Net80
framework: net8.0
dotnet-version: 8.x.x
- name: Net90
framework: net9.0
dotnet-version: 9.x.x
- name: Net100
framework: net10.0
dotnet-version: 10.x.x
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.x.x
${{ matrix.dotnet-version }}
- name: Specify .NET SDK version to use since GitHub runners have multiple installed
run: |
echo '{"sdk":{"version": "${{ matrix.dotnet-version }}"}}' > ./global.json
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
- name: Setup Nuget
uses: NuGet/setup-nuget@v2
- name: Load NuGet package cache
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ matrix.framework }}-${{ hashFiles('**/packages.lock.json') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: Restore NuGet Packages
run: just restore
# Pull in fixtures submodule
- name: Set up dotnet tools and dependencies
run: just install
# Run the unit tests in a specific framework (verify that the library works in that framework)
- name: Run Tests
run: just unit-test ${{ matrix.framework }}
# .NET Standard notes:
# - NET Standard 2.0 is compatible with minimum .NET Framework 4.6.1: https://docs.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0
# - GitHub's Windows 2022 runner only supports minimum .NET Framework 4.7.2 anyway: https://github.com/actions/virtual-environments/issues/5055#issuecomment-1040757930
# - .NET Standard is not a framework, but a set of shared APIs between the old .NET Framework and new .NET/.NET Core
# - `EasyVCR` targets .NET Standard 2.0, meaning it is compatible with specific versions of both .NET and .NET Framework: https://docs.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0
# - When you want to actually run code, however, you can't run it in .NET Standard. You have to run it in either .NET or .NET Framework: https://stackoverflow.com/a/48885500/13343799
# - So, while `EasyVCR` targets .NET Standard 2.0, `EasyVCR.Compatibility.NetStandard`, the code we're actually executing, targets .NET Framework 4.7.2
# - By extension, this is ensuring we are testing that the `EasyVCR` source code can run in a .NET Framework environment
NetStandard_Compatibility_Tests:
# Need windows-2022 for .NET Framework 4.7.2 support
runs-on: windows-2022
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
id: setupid
with:
dotnet-version: 10.x.x
- name: Specify .NET SDK version to use since GitHub runners have multiple installed
run: |
echo '{"sdk":{"version": "${{ steps.setupid.outputs.dotnet-version }}"}}' > ./global.json
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
- name: Setup Nuget
uses: NuGet/setup-nuget@v2
- name: Setup VSTest
uses: darenm/Setup-VSTest@v1.3
# Pull in fixtures submodule
- name: Set up dotnet tools and dependencies
run: just install
- name: Restore NuGet Packages
run: just restore build
# Run the compatibility tests
- name: Run Tests
run: just netstandard-compat-test net472
FSharp_Compatibility_Tests:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
id: setupid
with:
dotnet-version: 10.x.x
- name: Specify .NET SDK version to use since GitHub runners have multiple installed
run: |
echo '{"sdk":{"version": "${{ steps.setupid.outputs.dotnet-version }}"}}' > ./global.json
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
- name: Setup Nuget
uses: NuGet/setup-nuget@v2
- name: Setup VSTest
uses: darenm/Setup-VSTest@v1.3
- name: Restore NuGet Packages
run: just restore
# Pull in fixtures submodule
- name: Set up dotnet tools and dependencies
run: just install
# Run the compatibility tests
- name: Run Tests
run: just fs-compat-test
Visual_Basic_Compatibility_Test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: extractions/setup-just@v3
- uses: actions/setup-dotnet@v5
id: setupid
with:
dotnet-version: 10.x.x
- name: Specify .NET SDK version to use since GitHub runners have multiple installed
run: |
echo '{"sdk":{"version": "${{ steps.setupid.outputs.dotnet-version }}"}}' > ./global.json
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
- name: Setup Nuget
uses: NuGet/setup-nuget@v2
- name: Setup VSTest
uses: darenm/Setup-VSTest@v1.3
- name: Restore NuGet Packages
run: just restore
# Pull in fixtures submodule
- name: Set up dotnet tools and dependencies
run: just install
# Run the compatibility tests
- name: Run Tests
run: just vb-compat-test