QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142) getrackt, ohne .gitmodules und ohne erreichbares Remote. Der Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen. Umstellung: - Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6) - Gitlink aus dem Index entfernt - Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
136 lines
4.9 KiB
YAML
136 lines
4.9 KiB
YAML
trigger:
|
|
- master
|
|
- releases/*
|
|
|
|
pool: QuickTest
|
|
|
|
strategy:
|
|
matrix:
|
|
default:
|
|
NAME: default
|
|
version2:
|
|
NAME: version2
|
|
views:
|
|
NAME: views
|
|
|
|
resources:
|
|
containers:
|
|
- container: db
|
|
endpoint: CentronACR
|
|
image: centron.azurecr.io/centron_db/$(NAME):0213def19b183ffb83ce9649468ad914384c0bcb
|
|
env:
|
|
MSSQL_SA_PASSWORD: SA!password
|
|
ports:
|
|
- 1433:1433
|
|
options: --name db
|
|
|
|
- container: smtp
|
|
endpoint: CentronACR
|
|
image: centron.azurecr.io/mailcatcher:latest
|
|
ports:
|
|
- 1025:1025
|
|
- 1080:1080
|
|
options: --name centron-smtp-1
|
|
|
|
- container: webservice
|
|
endpoint: CentronACR
|
|
image: centron.azurecr.io/centron_webservice:latest
|
|
env:
|
|
HARDWARE_ID: LinuxV1.ZDhiZjhiZjgtMjIwNS00MWQ1LThiMGEtMjM2ZjZhMzc2MGMz
|
|
WEBSERVICE_CONFIG: '<?xml version="1.0" encoding="utf-8"?>
|
|
<WebServiceConfig>
|
|
<WebServiceAddress>http://localhost:1234/CentronService</WebServiceAddress>
|
|
<PublicWebServiceAddress></PublicWebServiceAddress>
|
|
<WebServiceCertificateFilePath></WebServiceCertificateFilePath>
|
|
<WebServiceCertificatePassword></WebServiceCertificatePassword>
|
|
<ActiveDirectoryAuthEnabled>false</ActiveDirectoryAuthEnabled>
|
|
<ActiveDirectoryUrl></ActiveDirectoryUrl>
|
|
<ActiveDirectoryName></ActiveDirectoryName>
|
|
<ActiveDirectoryCertificateHash></ActiveDirectoryCertificateHash>
|
|
<DatabaseConnectionString>
|
|
</DatabaseConnectionString>
|
|
<DatabaseConnectionStringPlain>
|
|
Server=db,1433; Database=Centron; User Id=SA; Password=SA!password
|
|
</DatabaseConnectionStringPlain>
|
|
<UseIncreasedThreadPool>true</UseIncreasedThreadPool>
|
|
<ActivateHelpPage>false</ActivateHelpPage>
|
|
<ExecuteServices>false</ExecuteServices>
|
|
<ProxyAddress></ProxyAddress>
|
|
<ProxyPort />
|
|
<ProxyUsername />
|
|
<ProxyPassword></ProxyPassword>
|
|
<TwoFactorAuthEnabled>false</TwoFactorAuthEnabled>
|
|
<TwoFactorAuthType>RadiusServer</TwoFactorAuthType>
|
|
<RadiusServerAddress></RadiusServerAddress>
|
|
<RadiusServerSecret></RadiusServerSecret>
|
|
<RadiusServerConnectionTimeoutInSeconds>30</RadiusServerConnectionTimeoutInSeconds>
|
|
<RadiusServerNasIdentifier></RadiusServerNasIdentifier>
|
|
<RadiusServerNasIpAddress></RadiusServerNasIpAddress>
|
|
<MailTwoFactorAuthSenderAddress></MailTwoFactorAuthSenderAddress>
|
|
<MailTwoFactorAuthTimeoutInSeconds>120</MailTwoFactorAuthTimeoutInSeconds>
|
|
<TwoFactorValidDurationInDays>0</TwoFactorValidDurationInDays>
|
|
<SecretKey>ThisIsASecretKey</SecretKey>
|
|
</WebServiceConfig>'
|
|
command: sh -c "sleep 75;echo $WEBSERVICE_CONFIG > /app/WebServiceConfig.xml;/app/Centron.Host.Console"
|
|
ports:
|
|
- "1234:1234"
|
|
options: --name webservice
|
|
|
|
services:
|
|
db: db
|
|
centron-smtp-1: smtp
|
|
webservice: webservice
|
|
steps:
|
|
- checkout: self
|
|
fetchDepth: 0
|
|
- script: 'dotnet build "./src/nexus/CentronNexus.Host/CentronNexus.Host.csproj"'
|
|
displayName: Build Nexus
|
|
- script: >
|
|
dotnet run --project "./src/nexus/CentronNexus.Host/CentronNexus.Host.csproj" > nexus_logs_$(NAME).txt 2>&1 &
|
|
echo "##vso[task.setvariable variable=NexusPID;]$!"
|
|
displayName: Run Nexus
|
|
- script: 'dotnet build "./tests/PlaywrightTests/PlaywrightTests.csproj"'
|
|
displayName: 'Build playwright tests'
|
|
- script: './tests/PlaywrightTests/bin/Debug/net8.0/playwright.ps1 install'
|
|
displayName: 'Install playwright tests'
|
|
- script: >
|
|
dotnet test "./tests/PlaywrightTests/PlaywrightTests.csproj"
|
|
--filter TestCategory=$(NAME)
|
|
--logger "trx;LogFileName=TestResults.trx"
|
|
--results-directory "artifacts/tests/playwright/"
|
|
displayName: 'Run playwright tests'
|
|
- publish: ./tests/PlaywrightTests/bin/Debug/net8.0/playwright-traces/
|
|
artifact: traces_$(NAME)_$(System.JobAttempt)
|
|
displayName: 'Publish playwright test traces'
|
|
condition: always()
|
|
- task: PublishTestResults@2
|
|
displayName: 'Publish playwright test results'
|
|
condition: always()
|
|
inputs:
|
|
testResultsFormat: VSTest
|
|
testResultsFiles: 'artifacts/tests/playwright/TestResults.trx'
|
|
testRunTitle: 'Playwright Tests'
|
|
buildConfiguration: 'Release'
|
|
failTaskOnFailedTests: true
|
|
- script: 'kill $(NexusPID) || true'
|
|
displayName: Cleanup Nexus process
|
|
condition: always()
|
|
continueOnError: true
|
|
- publish: nexus_logs_$(NAME).txt
|
|
artifact: nexus_$(NAME)_$(System.JobAttempt)
|
|
displayName: Publish Nexus logs
|
|
condition: always()
|
|
continueOnError: true
|
|
- script: docker container logs webservice > webservice_logs_$(NAME).txt || true
|
|
displayName: Get webservice logs
|
|
condition: always()
|
|
- publish: webservice_logs_$(NAME).txt
|
|
artifact: webservice_$(NAME)_$(System.JobAttempt)
|
|
displayName: Publish webservice logs
|
|
condition: always()
|
|
continueOnError: true
|
|
- script: docker image prune -f --filter "dangling=true"
|
|
displayName: Cleanup dangling images
|
|
condition: always()
|
|
continueOnError: true
|
|
|