Add publish-internal workflow from main branch #3255
This file contains 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: Github Actions | |
on: ["push"] | |
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@v2 | |
- 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 netcoreapp3.1 /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@v2 | |
- 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@v2 | |
- name: Set up | |
uses: ./.github/setup | |
with: | |
sln: src/DotVVM.Crossplatform.slnf | |
- name: Tests | |
uses: ./.github/unittest | |
with: | |
project: src/Tests | |
name: framework-tests | |
title: Framework Tests | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Analyzers.Tests | |
uses: ./.github/unittest | |
with: | |
project: src/Analyzers/Analyzers.Tests | |
name: analyzers-tests | |
title: Analyzer Tests | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
js-tests: | |
runs-on: ubuntu-latest | |
name: JS unit tests | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@v2 | |
# 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: | |
browser: [firefox, chrome] | |
os: [windows-2022, ubuntu-latest] | |
exclude: | |
- browser: firefox | |
os: windows-2022 | |
env: | |
SLN: "${{ matrix.os == 'windows-2022' && 'src/DotVVM.sln' || 'src/DotVVM.Crossplatform.slnf' }}" | |
steps: | |
- uses: actions/checkout@v2 | |
- 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 }} |