Skip to content

Merge pull request #1880 from riganti/fix/netfx-binding-redirects #3223

Merge pull request #1880 from riganti/fix/netfx-binding-redirects

Merge pull request #1880 from riganti/fix/netfx-binding-redirects #3223

Workflow file for this run

name: Run tests
on:
push:
branches:
- 'main'
- 'main-*'
- 'release/**'
pull_request:
workflow_dispatch:
env:
DOTVVM_ROOT: ${{ github.workspace }}
DOTNET_NOLOGO: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
jobs:
build-published:
name: Build published projects without warnings
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
configuration: [Release, Debug]
timeout-minutes: 20
steps:
- uses: actions/checkout@v3
- name: Set up
uses: ./.github/setup
with:
sln: src/DotVVM.Crossplatform.slnf
# no reason to Spam with warnings when normal build fails
- name: Build Framework (without /WarnAsError)
run: dotnet build src/Framework/Framework --configuration ${{ matrix.configuration }} --no-restore --no-incremental /property:WarningLevel=0
# framework
- name: Core
run: dotnet build src/Framework/Framework --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
- name: Framework
run: dotnet build src/Framework/Framework --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
- name: Testing
run: dotnet build src/Framework/Testing --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# hosting
- name: Hosting.AspNetCore
run: dotnet build src/Framework/Hosting.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# command-line
- name: CommandLine
run: dotnet build src/Tools/CommandLine --configuration ${{ matrix.configuration }} --no-restore --framework net6.0 /WarnAsError
# swashbuckle
- name: Api.Swashbuckle.AspNetCore
run: dotnet build src/Api/Swashbuckle.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# hot reload
- name: HotReload.Common
run: dotnet build src/Tools/HotReload/Common --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
- name: HotReload.AspNetCore
run: dotnet build src/Tools/HotReload/AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# application insights
- name: Tracing.ApplicationInsights
run: dotnet build src/Tracing/ApplicationInsights --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
- name: Tracing.ApplicationInsights.AspNetCore
run: dotnet build src/Tracing/ApplicationInsights.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# miniprofiler
- name: Tracing.MiniProfiler.AspNetCore
run: dotnet build src/Tracing/MiniProfiler.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
# dynamic data
- name: DynamicData
run: dotnet build src/DynamicData/DynamicData --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net6.0 /WarnAsError
build-all:
name: Build all projects without errors
runs-on: windows-2022
timeout-minutes: 20
steps:
- uses: actions/checkout@v3
- name: Set up
uses: ./.github/setup
- name: MSBuild build
run: msbuild src/DotVVM.sln -v:m -t:Clean,Build -p:Configuration=Release -p:WarningLevel=0
dotnet-unit-tests:
name: .NET unit tests
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false # don't kill tests when one environment fails
matrix:
os: [ubuntu-latest, windows-2022, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Set up
uses: ./.github/setup
with:
sln: src/DotVVM.Crossplatform.slnf
- name: Tests (net8.0)
uses: ./.github/unittest
with:
project: src/Tests
name: framework-tests
title: Framework Tests
github-token: ${{ secrets.GITHUB_TOKEN }}
target-framework: net8.0
# - name: Tests (net7.0)
# uses: ./.github/unittest
# with:
# project: src/Tests
# name: framework-tests
# title: Framework Tests
# github-token: ${{ secrets.GITHUB_TOKEN }}
# target-framework: net7.0
- name: Tests (net472)
uses: ./.github/unittest
if: ${{ (matrix.os == 'windows-2022') && (success() || failure()) }}
with:
project: src/Tests
name: framework-tests
title: Framework Tests
github-token: ${{ secrets.GITHUB_TOKEN }}
target-framework: net472
- name: Analyzers.Tests (net6.0)
uses: ./.github/unittest
if: ${{ success() || failure() }}
with:
project: src/Analyzers/Analyzers.Tests
name: analyzers-tests
title: Analyzer Tests
github-token: ${{ secrets.GITHUB_TOKEN }}
target-framework: net6.0
# - name: Analyzers.Tests (net7.0)
# uses: ./.github/unittest
# with:
# project: src/Analyzers/Analyzers.Tests
# name: analyzers-tests
# title: Analyzer Tests
# github-token: ${{ secrets.GITHUB_TOKEN }}
# target-framework: net7.0
- name: Adapters.WebForms.Tests (net472)
uses: ./.github/unittest
if: matrix.os == 'windows-2022'
with:
project: src/Adapters/Tests/WebForms
name: webforms-adapters-tests
title: WebForms Adapter Tests
github-token: ${{ secrets.GITHUB_TOKEN }}
target-framework: net472
js-tests:
runs-on: ubuntu-latest
name: JS unit tests
timeout-minutes: 20
steps:
- uses: actions/checkout@v3
# Node.js
- uses: actions/setup-node@v2
with:
node-version: 16
- run: |
corepack enable
yarn set version stable
shell: bash
- name: yarn install
run: yarn install --immutable
working-directory: src/Framework/Framework/
- name: TypeScript check
run: yarn tsc-check
working-directory: src/Framework/Framework/
- name: yarn jest
run: yarn jest --ci --reporters=default --reporters=jest-github-actions-reporter
working-directory: src/Framework/Framework/
ui-tests:
name: UI tests
runs-on: ${{ matrix.os }}
timeout-minutes: 50
strategy:
fail-fast: false # don't kill tests when one environment fails
matrix:
# specify only one config, all other configurations are included explicitly
browser: [chrome]
os: [ubuntu-latest]
environment: [Production]
samples-config: [Default]
include:
- browser: chrome
os: windows-2022
environment: Development
samples-config: Default
- browser: firefox
os: ubuntu-latest
environment: Development
samples-config: Default
- browser: firefox
os: ubuntu-latest
environment: Production
samples-config: Default
- browser: firefox
os: ubuntu-latest
environment: Development
samples-config: ExperimentalFeaturesTests
- browser: chrome
os: ubuntu-latest
environment: Production
samples-config: ExperimentalFeaturesTests
env:
SLN: "${{ matrix.os == 'windows-2022' && 'src/DotVVM.sln' || 'src/DotVVM.Crossplatform.slnf' }}"
steps:
- uses: actions/checkout@v3
- name: Set up
uses: ./.github/setup
with:
sln: ${{ env.SLN }}
- name: Run UI tests
uses: ./.github/uitest
with:
browser: ${{ matrix.browser }}
github-token: ${{ secrets.GITHUB_TOKEN }}
build-configuration: "${{ matrix.environment == 'Production' && 'Release' || 'Debug' }}"
runtime-environment: "${{ matrix.environment }}"
samples-config: "${{ matrix.samples-config }}"