Fixed path discovery in CLI E2E tests #3932
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: 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 net8.0 /WarnAsError | |
| - name: Framework | |
| run: dotnet build src/Framework/Framework --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| - name: Testing | |
| run: dotnet build src/Framework/Testing --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # hosting | |
| - name: Hosting.AspNetCore | |
| run: dotnet build src/Framework/Hosting.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # command-line | |
| - name: CommandLine | |
| run: dotnet build src/Tools/CommandLine --configuration ${{ matrix.configuration }} --no-restore --framework net8.0 /WarnAsError | |
| # swashbuckle | |
| - name: Api.Swashbuckle.AspNetCore | |
| run: dotnet build src/Api/Swashbuckle.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # hot reload | |
| - name: HotReload.Common | |
| run: dotnet build src/Tools/HotReload/Common --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| - name: HotReload.AspNetCore | |
| run: dotnet build src/Tools/HotReload/AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # application insights | |
| - name: Tracing.ApplicationInsights | |
| run: dotnet build src/Tracing/ApplicationInsights --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| - name: Tracing.ApplicationInsights.AspNetCore | |
| run: dotnet build src/Tracing/ApplicationInsights.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # miniprofiler | |
| - name: Tracing.MiniProfiler.AspNetCore | |
| run: dotnet build src/Tracing/MiniProfiler.AspNetCore --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.0 /WarnAsError | |
| # dynamic data | |
| - name: DynamicData | |
| run: dotnet build src/DynamicData/DynamicData --configuration ${{ matrix.configuration }} --no-restore --no-incremental --framework net8.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 (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: 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 | |
| # IMPORTANT: net8.0 tests must run AFTER all net472 tests. | |
| # The unittest action builds DotVVM.Compiler and DotVVM.CommandLine for net8.0 before running | |
| # net8.0 tests. Building with --no-restore for only one TFM regenerates Core's NuGet targets | |
| # files for net8.0 only, which corrupts the restore state and causes net472 builds to fail | |
| # with CS0518 (missing reference assemblies). Running net472 steps first avoids this. | |
| - name: Tests (net8.0) | |
| uses: ./.github/unittest | |
| if: ${{ success() || failure() }} | |
| 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: Analyzers.Tests (net8.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: net8.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: Integration Tests (net10.0) | |
| uses: ./.github/unittest | |
| if: ${{ matrix.os == 'ubuntu-latest' && (success() || failure()) }} | |
| with: | |
| project: src/IntegrationTests | |
| name: integration-tests | |
| title: Integration Tests | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| target-framework: net10.0 | |
| 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: 24 | |
| - 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] | |
| path-base: [""] | |
| include: | |
| - browser: chrome | |
| os: windows-2022 | |
| environment: Development | |
| samples-config: Default | |
| - browser: firefox | |
| os: ubuntu-latest | |
| environment: Development | |
| samples-config: Default | |
| path-base: /test-basepath | |
| - 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 }}" | |
| path-base: "${{ matrix.path-base }}" |