Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
fd853ddcd4 | |||
188f69fb62 | |||
870ff2c2c8 | |||
b13f0ed089 | |||
420f5313b0 | |||
84a7db6100 | |||
4491e3fc42 | |||
cb5c059f50 | |||
b9e74f1bac | |||
fce0aaeb24 | |||
3e66678065 | |||
2d38427bb2 | |||
f554a0ad7a | |||
61f851db59 | |||
d43e5f00a8 | |||
3a9413deb3 | |||
2ff1342f5a | |||
f9296dc252 | |||
da5afebe03 | |||
baeed42d37 | |||
6609772a05 | |||
d250651c28 | |||
cb9386b283 | |||
03bbc36802 | |||
79ef3c88e4 | |||
23d89c85bc | |||
b3c970216c | |||
a180f65069 |
11
.gitignore
vendored
11
.gitignore
vendored
@ -331,10 +331,11 @@ ASALocalRun/
|
|||||||
##
|
##
|
||||||
## Visual Studio Code
|
## Visual Studio Code
|
||||||
##
|
##
|
||||||
.vscode/*
|
**/.vscode/*
|
||||||
!.vscode/settings.json
|
!**/.vscode/extensions.json
|
||||||
!.vscode/tasks.json
|
!**/.vscode/format-report.json
|
||||||
!.vscode/launch.json
|
!**/.vscode/launch.json
|
||||||
!.vscode/extensions.json
|
!**/.vscode/settings.json
|
||||||
|
!**/.vscode/tasks.json
|
||||||
|
|
||||||
*.lnk
|
*.lnk
|
||||||
|
172
.groovy
172
.groovy
@ -1,172 +0,0 @@
|
|||||||
#!/usr/bin/env groovy
|
|
||||||
/* groovylint-disable CompileStatic, ConsecutiveStringConcatenation, DuplicateNumberLiteral, DuplicateStringLiteral, LineLength, NestedBlockDepth, NoDef, VariableTypeRequired */
|
|
||||||
import groovy.transform.Field
|
|
||||||
|
|
||||||
@Field String _DDrive = 'D:/'
|
|
||||||
@Field String _GitName = 'EC'
|
|
||||||
@Field String _AssemblyName = '...'
|
|
||||||
@Field String _TargetLocation = '...'
|
|
||||||
@Field String _GitCommitSeven = '...'
|
|
||||||
@Field String _TestProjectDirectory = 'Adaptation'
|
|
||||||
@Field String _AgentStaging = 'mestsa07ec-ecmeseaf'
|
|
||||||
@Field String _DDriveNet = "${_DDrive}Framework4.8"
|
|
||||||
@Field String _AgentProduction = 'messa08ec-ecmeseaf'
|
|
||||||
@Field String _AgentDevelopment = 'mestsa003-mesedasvc'
|
|
||||||
@Field String _ProgramFilesDotnet = 'C:/Program Files/dotnet/dotnet.exe'
|
|
||||||
@Field String _ProgramFilesMSBuild = 'C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe'
|
|
||||||
|
|
||||||
pipeline {
|
|
||||||
agent {
|
|
||||||
label env.JENKINS_ENVIRONMENT == 'Development' ? _AgentDevelopment : env.JENKINS_ENVIRONMENT == 'Staging' ? _AgentStaging : env.JENKINS_ENVIRONMENT == 'Production' ? _AgentProduction : 'Else'
|
|
||||||
}
|
|
||||||
parameters {
|
|
||||||
string(name: 'GIT_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'mestsa003.infineon.com' : 'mestsa07ec.ec.local', description: 'git server')
|
|
||||||
string(name: 'DEFAULT_FILE_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'messv02ecc1_ec_local' : 'messv02ecc1.ec.local', description: 'Default file server...')
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
stage('Git') {
|
|
||||||
steps {
|
|
||||||
bat(returnStatus: true, script: 'git init')
|
|
||||||
bat(returnStatus: true, script: 'git remote add origin \\\\' + params.GIT_SERVER + '\\Git\\' + _GitName + '.git')
|
|
||||||
bat(returnStatus: true, script: 'git pull origin master')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Setup') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
_AssemblyName = "${env.JOB_NAME}"
|
|
||||||
_GitCommitSeven = '1234567'
|
|
||||||
// _GitCommitSeven = env.GIT_COMMIT.substring(0, 7)
|
|
||||||
def files = findFiles(glob: '*.csproj')
|
|
||||||
if (files.length != 1) {
|
|
||||||
error("Build failed because couldn't find a *.csproj file")
|
|
||||||
}
|
|
||||||
echo """
|
|
||||||
${files[0].name}
|
|
||||||
${files[0].path}
|
|
||||||
${files[0].directory}
|
|
||||||
${files[0].length}
|
|
||||||
${files[0].lastModified}
|
|
||||||
"""
|
|
||||||
_AssemblyName = files[0].name.split('[.]csproj')[0]
|
|
||||||
_TargetLocation = "\\\\${params.DEFAULT_FILE_SERVER}\\EC_EAFRepository\\${env.JENKINS_ENVIRONMENT}\\DeploymentStorage\\Adaptation_${_AssemblyName}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Info') {
|
|
||||||
steps {
|
|
||||||
echo "_AssemblyName ${_AssemblyName}" // ...
|
|
||||||
echo "BUILD_NUMBER ${env.BUILD_NUMBER}" // 11
|
|
||||||
echo "DEFAULT_FILE_SERVER ${params.DEFAULT_FILE_SERVER}" // 11
|
|
||||||
echo "GIT_BRANCH ${env.GIT_BRANCH}" // origin/master
|
|
||||||
echo "GIT_COMMIT ${env.GIT_COMMIT}" // 73b814069f2cf0173a62a8228815a9bc9ba93c41
|
|
||||||
echo "GIT_SERVER ${params.GIT_SERVER}" // ...
|
|
||||||
echo "GIT_URL ${env.GIT_URL}" // D:\ProgramData\Git\....git
|
|
||||||
echo "JENKINS_ENVIRONMENT ${env.JENKINS_ENVIRONMENT}" // 11
|
|
||||||
echo "JENKINS_URL ${env.JENKINS_URL}" // http://localhost:8080/
|
|
||||||
echo "JOB_NAME ${env.JOB_NAME}" // ...
|
|
||||||
echo "WORKSPACE ${env.WORKSPACE}" // D:\.jenkins\_\...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Restore') {
|
|
||||||
// steps {
|
|
||||||
// bat(returnStatus: true, script: 'dotnet --info')
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Safe storage of app secrets') {
|
|
||||||
steps {
|
|
||||||
dir(_TestProjectDirectory) {
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets init')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "BuildNumber" "' + env.BUILD_NUMBER + '"')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "GitCommitSeven" "' + _GitCommitSeven + '"')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "Server" "' + params.DEFAULT_FILE_SERVER + '"')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Core Build') {
|
|
||||||
steps {
|
|
||||||
echo "Build number is ${currentBuild.number}"
|
|
||||||
dir(_TestProjectDirectory) {
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'build --runtime win-x64 --self-contained --verbosity quiet')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Test') {
|
|
||||||
// options {
|
|
||||||
// timeout(time: 10, unit: 'MINUTES')
|
|
||||||
// }
|
|
||||||
// steps {
|
|
||||||
// dir(_TestProjectDirectory) {
|
|
||||||
// bat('dotnet --info')
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Framework Build') {
|
|
||||||
steps {
|
|
||||||
echo "Build number is ${currentBuild.number}"
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
|
|
||||||
'/target:Restore ' +
|
|
||||||
'/detailedsummary ' +
|
|
||||||
'/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
|
|
||||||
'/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
|
|
||||||
_AssemblyName + '.csproj')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
|
|
||||||
'/target:Build ' +
|
|
||||||
'/detailedsummary ' +
|
|
||||||
'/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
|
|
||||||
'/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
|
|
||||||
_AssemblyName + '.csproj')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Commit Id') {
|
|
||||||
steps {
|
|
||||||
dir('bin/Debug') {
|
|
||||||
writeFile file: "${_AssemblyName}.txt", text: "${env.GIT_COMMIT}-${env.BUILD_NUMBER}-${env.GIT_URL}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Package') {
|
|
||||||
steps {
|
|
||||||
fileOperations([fileZipOperation(folderPath: 'bin/Debug', outputFolderPath: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug")])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*", renameFiles: false, sourceCaptureExpression: '', targetLocation: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug", targetNameExpression: '')])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Force Fail') {
|
|
||||||
// steps {
|
|
||||||
// error("Build failed because of this and that..")
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Copy Files to: file-share') {
|
|
||||||
steps {
|
|
||||||
dir('bin/Debug') {
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.txt", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.dll", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.exe", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.pdb", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
dir('bin') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir('obj') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir(_TestProjectDirectory + '/bin') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir(_TestProjectDirectory + '/obj') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
// cleanWs()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
12
Adaptation/.config/dotnet-tools.json
Normal file
12
Adaptation/.config/dotnet-tools.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"isRoot": true,
|
||||||
|
"tools": {
|
||||||
|
"dotnet-reportgenerator-globaltool": {
|
||||||
|
"version": "5.1.15",
|
||||||
|
"commands": [
|
||||||
|
"reportgenerator"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -76,12 +76,15 @@ csharp_using_directive_placement = outside_namespace
|
|||||||
dotnet_code_quality_unused_parameters = all
|
dotnet_code_quality_unused_parameters = all
|
||||||
dotnet_code_quality_unused_parameters = non_public # IDE0060: Remove unused parameter
|
dotnet_code_quality_unused_parameters = non_public # IDE0060: Remove unused parameter
|
||||||
dotnet_code_quality.CAXXXX.api_surface = private, internal
|
dotnet_code_quality.CAXXXX.api_surface = private, internal
|
||||||
|
dotnet_diagnostic.CA1816.severity = none # CA1816: Call GC.SuppressFinalize correctly
|
||||||
dotnet_diagnostic.CA1825.severity = warning # CA1823: Avoid zero-length array allocations
|
dotnet_diagnostic.CA1825.severity = warning # CA1823: Avoid zero-length array allocations
|
||||||
dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property instead of Count() when available
|
dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property instead of Count() when available
|
||||||
dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable
|
dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable
|
||||||
|
dotnet_diagnostic.CA1846.severity = none # CA1846: Prefer AsSpan over Substring
|
||||||
|
dotnet_diagnostic.CA1847.severity = none # CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters
|
||||||
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
|
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
|
||||||
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
|
|
||||||
dotnet_diagnostic.IDE0002.severity = warning # Simplify (member access) - System.Version.Equals("1", "2"); Version.Equals("1", "2");
|
dotnet_diagnostic.IDE0002.severity = warning # Simplify (member access) - System.Version.Equals("1", "2"); Version.Equals("1", "2");
|
||||||
|
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
|
||||||
dotnet_diagnostic.IDE0005.severity = warning # Using directive is unnecessary
|
dotnet_diagnostic.IDE0005.severity = warning # Using directive is unnecessary
|
||||||
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
|
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
|
||||||
dotnet_diagnostic.IDE0049.severity = warning # Use language keywords instead of framework type names for type references (IDE0049)
|
dotnet_diagnostic.IDE0049.severity = warning # Use language keywords instead of framework type names for type references (IDE0049)
|
||||||
|
7
Adaptation/.kanbn/board.css
Normal file
7
Adaptation/.kanbn/board.css
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.kanbn-task-data-workload {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.kanbn-task-data-relation {
|
||||||
|
display: block;
|
||||||
|
color: #198038;
|
||||||
|
}
|
21
Adaptation/.kanbn/index.md
Normal file
21
Adaptation/.kanbn/index.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
type: "kanbn"
|
||||||
|
created: 2023-07-07T15:37:56.040Z
|
||||||
|
updated: 2023-07-18T19:52:59.668Z
|
||||||
|
startedColumns:
|
||||||
|
- 'In Progress'
|
||||||
|
completedColumns:
|
||||||
|
- Done
|
||||||
|
dateFormat: mm/dd
|
||||||
|
taskTemplate: '^+^_${overdue ? ''^R'' : ''''}${name}^: ${relations ? (''\n^-^/^g'' + relations.reduce((accumulator, currentValue) => accumulator.task + currentValue.task + '' '', '''')) : ''''}'
|
||||||
|
---
|
||||||
|
|
||||||
|
# EC
|
||||||
|
|
||||||
|
## Backlog
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
## In Progress
|
||||||
|
|
||||||
|
## Done
|
10
Adaptation/.vscode/launch.json
vendored
Normal file
10
Adaptation/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": ".NET Core Attach",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "attach",
|
||||||
|
"processId": 7156
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
5
Adaptation/.vscode/settings.json
vendored
5
Adaptation/.vscode/settings.json
vendored
@ -1,4 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"[markdown]": {
|
||||||
|
"editor.wordWrap": "off"
|
||||||
|
},
|
||||||
|
"cSpell.words": [],
|
||||||
|
"coverage-gutters.coverageBaseDir": "../../../../EC/05_TestResults/TestResults/**",
|
||||||
"workbench.colorCustomizations": {
|
"workbench.colorCustomizations": {
|
||||||
"activityBar.activeBackground": "#d791c9",
|
"activityBar.activeBackground": "#d791c9",
|
||||||
"activityBar.activeBorder": "#e8eed0",
|
"activityBar.activeBorder": "#e8eed0",
|
||||||
|
88
Adaptation/.vscode/tasks.json
vendored
Normal file
88
Adaptation/.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Build",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Format",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"format",
|
||||||
|
"--report",
|
||||||
|
".vscode",
|
||||||
|
"--verbosity",
|
||||||
|
"detailed",
|
||||||
|
"--severity",
|
||||||
|
"warn"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Nuget Clear",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"nuget",
|
||||||
|
"locals",
|
||||||
|
"all",
|
||||||
|
"--clear"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "MSBuild for EAF Deployment Packages",
|
||||||
|
"command": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"/target:Build",
|
||||||
|
"/restore:True",
|
||||||
|
"/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json",
|
||||||
|
"/detailedsummary",
|
||||||
|
"/consoleloggerparameters:PerformanceSummary;ErrorsOnly;",
|
||||||
|
"/property:Configuration=Debug;TargetFrameworkVersion=v4.8",
|
||||||
|
"../EC.csproj"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Project",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "code ../EC.csproj",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Git Config",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "code ../.git/config",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Kanbn Console",
|
||||||
|
"type": "npm",
|
||||||
|
"script": "kanbn.board",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Kanbn Write Boad",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "& kanbn board -j | L:/Git/kanbn2md/kanbn2md.exe >.kanbn/board.md",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Kanbn Write json",
|
||||||
|
"type": "npm",
|
||||||
|
"script": "kanbn.board.json",
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
1
Adaptation/EC-Development.yml
Normal file
1
Adaptation/EC-Development.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
ECHO is on.
|
@ -11,7 +11,7 @@
|
|||||||
<LangVersion>10.0</LangVersion>
|
<LangVersion>10.0</LangVersion>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VSTestLogger>trx</VSTestLogger>
|
<VSTestLogger>trx</VSTestLogger>
|
||||||
@ -33,49 +33,8 @@
|
|||||||
<DefineConstants>Linux</DefineConstants>
|
<DefineConstants>Linux</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0" />
|
<PackageReference Include="coverlet.collector" Version="6.0.3" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="6.0.0" />
|
<PackageReference Include="FFMpegCore" Version="5.1.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.json" Version="6.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
|
|
||||||
<PackageReference Include="Microsoft.Win32.SystemEvents" Version="6.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
|
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
|
|
||||||
<PackageReference Include="System.Data.OleDb" Version="6.0.0" />
|
|
||||||
<PackageReference Include="System.Data.SqlClient" Version="4.8.4" />
|
|
||||||
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
|
|
||||||
<PackageReference Include="System.Text.Json" Version="6.0.6" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="coverlet.collector" Version="3.1.2">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="FFMpegCore" Version="4.8.0" />
|
|
||||||
<PackageReference Include="Infineon.Yoda" Version="5.4.1" />
|
|
||||||
<PackageReference Include="Instances" Version="2.0.0" />
|
|
||||||
<PackageReference Include="RoboSharp" Version="1.2.8" />
|
|
||||||
<PackageReference Include="Tesseract" Version="4.1.1" />
|
|
||||||
<PackageReference Include="Tibco.Rendezvous" Version="8.5.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="External.Common.Logging.Core" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
|
||||||
<PackageReference Include="External.Common.Logging" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
|
||||||
<PackageReference Include="External.log4net" Version="2.0.8"><NoWarn>NU1701</NoWarn></PackageReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
|
||||||
<PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.OpenJDK.Media" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.Media" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
@ -83,6 +42,39 @@
|
|||||||
<PackageReference Include="IKVM.OpenJDK.Util" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.Util" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
|
<PackageReference Include="Instances" Version="3.0.1" />
|
||||||
|
<PackageReference Include="log4net" Version="3.0.3"></PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.json" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||||
|
<PackageReference Include="Microsoft.Win32.SystemEvents" Version="9.0.0" />
|
||||||
|
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
|
||||||
|
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
|
||||||
|
<PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
|
<PackageReference Include="RoboSharp" Version="1.6.0" />
|
||||||
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.0" />
|
||||||
|
<PackageReference Include="System.Data.OleDb" Version="9.0.0" />
|
||||||
|
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
|
||||||
|
<PackageReference Include="System.Drawing.Common" Version="9.0.0" />
|
||||||
|
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.3" />
|
||||||
|
<PackageReference Include="Tibco.Rendezvous.DotNetCore" Version="8.5.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Tesseract" Version="5.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="appsettings.json">
|
<None Include="appsettings.json">
|
||||||
|
1
Adaptation/EC.yml
Normal file
1
Adaptation/EC.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
ECHO is on.
|
@ -9,12 +9,12 @@ namespace Adaptation.FileHandlers;
|
|||||||
public class CellInstanceConnectionName
|
public class CellInstanceConnectionName
|
||||||
{
|
{
|
||||||
|
|
||||||
internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
|
internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, int? connectionCount)
|
||||||
{
|
{
|
||||||
IFileRead result = cellInstanceConnectionName switch
|
IFileRead result = cellInstanceConnectionName switch
|
||||||
{
|
{
|
||||||
nameof(MapEafDrives) => new MapEafDrives.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
|
nameof(MapEafDrives) => new MapEafDrives.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
|
||||||
nameof(RijndaelEncryption) => new RijndaelEncryption.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
|
nameof(RijndaelEncryption) => new RijndaelEncryption.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
|
||||||
_ => throw new Exception(),
|
_ => throw new Exception(),
|
||||||
};
|
};
|
||||||
return result;
|
return result;
|
||||||
|
@ -18,8 +18,8 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
|
|
||||||
private readonly AppSettings _AppSettings;
|
private readonly AppSettings _AppSettings;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), true, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted)
|
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
_NullData = string.Empty;
|
_NullData = string.Empty;
|
||||||
@ -107,13 +107,11 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma warning disable IDE0060
|
||||||
private static Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private static Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
|
#pragma warning restore IDE0060
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>());
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>());
|
||||||
if (reportFullPath is null)
|
|
||||||
{ }
|
|
||||||
if (dateTime == DateTime.MinValue)
|
|
||||||
{ }
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,8 +18,8 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
|
|
||||||
private readonly AppSettings _AppSettings;
|
private readonly AppSettings _AppSettings;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), true, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted)
|
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
_NullData = string.Empty;
|
_NullData = string.Empty;
|
||||||
|
@ -110,6 +110,42 @@ public class Description : IDescription, Properties.IDescription
|
|||||||
List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData)
|
List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData)
|
||||||
{
|
{
|
||||||
List<IDescription> results = new();
|
List<IDescription> results = new();
|
||||||
|
if (iProcessData is null || !iProcessData.Details.Any())
|
||||||
|
results.Add(GetDefault(fileRead, logistics));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string nullData;
|
||||||
|
Description description;
|
||||||
|
object configDataNullData = fileRead.NullData;
|
||||||
|
if (configDataNullData is null)
|
||||||
|
nullData = string.Empty;
|
||||||
|
else
|
||||||
|
nullData = configDataNullData.ToString();
|
||||||
|
for (int i = 0; i < iProcessData.Details.Count; i++)
|
||||||
|
{
|
||||||
|
if (iProcessData.Details[i] is null)
|
||||||
|
continue;
|
||||||
|
description = new Description
|
||||||
|
{
|
||||||
|
Test = (int)tests[i],
|
||||||
|
Count = tests.Count,
|
||||||
|
Index = i,
|
||||||
|
//
|
||||||
|
EventName = fileRead.EventName,
|
||||||
|
NullData = nullData,
|
||||||
|
JobID = fileRead.CellInstanceName,
|
||||||
|
Sequence = logistics.Sequence.ToString(),
|
||||||
|
MesEntity = logistics.MesEntity,
|
||||||
|
ReportFullPath = logistics.ReportFullPath,
|
||||||
|
ProcessJobID = logistics.ProcessJobID,
|
||||||
|
MID = logistics.MID,
|
||||||
|
//
|
||||||
|
Date = DateTime.Now.ToString(GetDateFormat()),
|
||||||
|
RDS = string.Empty,
|
||||||
|
};
|
||||||
|
results.Add(description);
|
||||||
|
}
|
||||||
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,4 +176,6 @@ public class Description : IDescription, Properties.IDescription
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
||||||
|
|
||||||
}
|
}
|
@ -63,7 +63,7 @@ public class FileRead : Properties.IFileRead
|
|||||||
string Properties.IFileRead.CellInstanceConnectionName => _CellInstanceConnectionName;
|
string Properties.IFileRead.CellInstanceConnectionName => _CellInstanceConnectionName;
|
||||||
string Properties.IFileRead.ParameterizedModelObjectDefinitionType => _ParameterizedModelObjectDefinitionType;
|
string Properties.IFileRead.ParameterizedModelObjectDefinitionType => _ParameterizedModelObjectDefinitionType;
|
||||||
|
|
||||||
public FileRead(IDescription description, bool isEvent, ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
|
public FileRead(IDescription description, bool isEvent, ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
|
||||||
{
|
{
|
||||||
_SMTP = smtp;
|
_SMTP = smtp;
|
||||||
_IsEvent = isEvent;
|
_IsEvent = isEvent;
|
||||||
@ -106,7 +106,7 @@ public class FileRead : Properties.IFileRead
|
|||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
if (string.IsNullOrEmpty(equipmentDictionaryName) && isEvent)
|
if (string.IsNullOrEmpty(equipmentDictionaryName) && isEvent)
|
||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
|
if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent && connectionCount > 1)
|
||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
// if (string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
|
// if (string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
|
||||||
// throw new Exception(cellInstanceConnectionName);
|
// throw new Exception(cellInstanceConnectionName);
|
||||||
@ -260,19 +260,21 @@ public class FileRead : Properties.IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory) where T : Properties.IDescription
|
protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory, string duplicateFile) where T : Properties.IDescription
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
string rds;
|
string rds;
|
||||||
|
string fileName;
|
||||||
string dateValue;
|
string dateValue;
|
||||||
string rdsPlaceholder = "%RDS%";
|
string rdsPlaceholder = "%RDS%";
|
||||||
|
string mesEntityPlaceholder = "%MesEntity%";
|
||||||
if (!descriptions.Any() || string.IsNullOrEmpty(descriptions[0].RDS))
|
if (!descriptions.Any() || string.IsNullOrEmpty(descriptions[0].RDS))
|
||||||
rds = logistics.MID;
|
rds = logistics.MID;
|
||||||
else
|
else
|
||||||
rds = descriptions[0].RDS;
|
rds = descriptions[0].RDS;
|
||||||
string[] segments = scopeInfo.FileName.Split(new string[] { "DateTime:" }, StringSplitOptions.RemoveEmptyEntries);
|
string[] segments = scopeInfo.FileName.Split(new string[] { "DateTime:" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
if (segments.Length == 0)
|
if (segments.Length == 0)
|
||||||
result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds));
|
result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
segments = segments[1].Split('%');
|
segments = segments[1].Split('%');
|
||||||
@ -284,7 +286,11 @@ public class FileRead : Properties.IFileRead
|
|||||||
continue;
|
continue;
|
||||||
datePlaceholder = string.Concat('%', segment, '%');
|
datePlaceholder = string.Concat('%', segment, '%');
|
||||||
}
|
}
|
||||||
result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(datePlaceholder, dateValue));
|
fileName = scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity).Replace(datePlaceholder, dateValue);
|
||||||
|
if (!duplicateFile.Contains("Viewer"))
|
||||||
|
result = Path.Combine(duplicateDirectory, fileName);
|
||||||
|
else
|
||||||
|
result = Path.Combine(duplicateDirectory, $"Viewer_{fileName}");
|
||||||
}
|
}
|
||||||
if (result.Contains('%'))
|
if (result.Contains('%'))
|
||||||
throw new Exception("Placeholder exists!");
|
throw new Exception("Placeholder exists!");
|
||||||
@ -296,6 +302,7 @@ public class FileRead : Properties.IFileRead
|
|||||||
bool check;
|
bool check;
|
||||||
long preWait;
|
long preWait;
|
||||||
string tupleFile;
|
string tupleFile;
|
||||||
|
string tupleFileName = string.Empty;
|
||||||
List<string> duplicateFiles = new();
|
List<string> duplicateFiles = new();
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
List<int> consumedFileIndices = new();
|
List<int> consumedFileIndices = new();
|
||||||
@ -316,7 +323,8 @@ public class FileRead : Properties.IFileRead
|
|||||||
else if (!scopeInfo.FileName.Contains('%'))
|
else if (!scopeInfo.FileName.Contains('%'))
|
||||||
tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc");
|
tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc");
|
||||||
else
|
else
|
||||||
tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory);
|
tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory, duplicateFile);
|
||||||
|
tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0];
|
||||||
duplicateFiles.Add(tupleFile);
|
duplicateFiles.Add(tupleFile);
|
||||||
if (_IsEAFHosted)
|
if (_IsEAFHosted)
|
||||||
File.WriteAllText(tupleFile, text);
|
File.WriteAllText(tupleFile, text);
|
||||||
@ -325,7 +333,7 @@ public class FileRead : Properties.IFileRead
|
|||||||
{
|
{
|
||||||
if (DateTime.Now.Ticks > preWait)
|
if (DateTime.Now.Ticks > preWait)
|
||||||
break;
|
break;
|
||||||
Thread.Sleep(500);
|
Thread.Sleep(100);
|
||||||
}
|
}
|
||||||
if (!moreThanAnHour)
|
if (!moreThanAnHour)
|
||||||
{
|
{
|
||||||
@ -340,7 +348,17 @@ public class FileRead : Properties.IFileRead
|
|||||||
for (int i = 0; i < duplicateFiles.Count; i++)
|
for (int i = 0; i < duplicateFiles.Count; i++)
|
||||||
{
|
{
|
||||||
if (!File.Exists(duplicateFiles[i]))
|
if (!File.Exists(duplicateFiles[i]))
|
||||||
consumedFileIndices.Add(i);
|
{
|
||||||
|
if (string.IsNullOrEmpty(tupleFileName))
|
||||||
|
consumedFileIndices.Add(i);
|
||||||
|
else if (duplicateFiles.All(l => Path.GetFileNameWithoutExtension(l).Split('.')[0] == tupleFileName))
|
||||||
|
{
|
||||||
|
for (int j = 0; j < duplicateFiles.Count; j++)
|
||||||
|
consumedFileIndices.Add(j);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
consumedFileIndices.Add(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (consumedFileIndices.Count == duplicateFiles.Count)
|
if (consumedFileIndices.Count == duplicateFiles.Count)
|
||||||
break;
|
break;
|
||||||
@ -361,7 +379,7 @@ public class FileRead : Properties.IFileRead
|
|||||||
}
|
}
|
||||||
throw new Exception(string.Concat("After {", _BreakAfterSeconds, "} seconds, right side of {", sourceDirectoryCloaking, "} didn't consume file(s) ", stringBuilder));
|
throw new Exception(string.Concat("After {", _BreakAfterSeconds, "} seconds, right side of {", sourceDirectoryCloaking, "} didn't consume file(s) ", stringBuilder));
|
||||||
}
|
}
|
||||||
Thread.Sleep(500);
|
Thread.Sleep(250);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ public class Logistics : ILogistics
|
|||||||
_Logistics2 = new List<Logistics2>();
|
_Logistics2 = new List<Logistics2>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Logistics(IFileRead fileRead, string reportFullPath, bool useSplitForMID, int? fileInfoLength = null)
|
public Logistics(IFileRead fileRead, long tickOffset, string reportFullPath, bool useSplitForMID, int? fileInfoLength = null)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(fileRead.CellInstanceName))
|
if (string.IsNullOrEmpty(fileRead.CellInstanceName))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
@ -59,7 +59,7 @@ public class Logistics : ILogistics
|
|||||||
throw new Exception();
|
throw new Exception();
|
||||||
_NullData = fileRead.NullData;
|
_NullData = fileRead.NullData;
|
||||||
_FileInfo = new(reportFullPath);
|
_FileInfo = new(reportFullPath);
|
||||||
DateTime dateTime = _FileInfo.LastWriteTime;
|
DateTime dateTime = new(_FileInfo.LastWriteTime.Ticks + tickOffset);
|
||||||
if (fileInfoLength.HasValue && _FileInfo.Length < fileInfoLength.Value)
|
if (fileInfoLength.HasValue && _FileInfo.Length < fileInfoLength.Value)
|
||||||
dateTime = dateTime.AddTicks(-1);
|
dateTime = dateTime.AddTicks(-1);
|
||||||
_JobID = fileRead.CellInstanceName;
|
_JobID = fileRead.CellInstanceName;
|
||||||
|
@ -16,7 +16,7 @@ public class ScopeInfo : Properties.IScopeInfo
|
|||||||
public string QueryFilter { get; private set; }
|
public string QueryFilter { get; private set; }
|
||||||
public string FileNameWithoutExtension { get; private set; }
|
public string FileNameWithoutExtension { get; private set; }
|
||||||
|
|
||||||
public ScopeInfo(Test test, string fileName, string queryFilter = "", string title = "", string html = "")
|
public ScopeInfo(Test test, string fileName, string queryFilter = "", string title = "", string html = "", string extraExtension = "")
|
||||||
{
|
{
|
||||||
Enum = test;
|
Enum = test;
|
||||||
Test = test;
|
Test = test;
|
||||||
|
@ -30,7 +30,7 @@ public partial class WS
|
|||||||
};
|
};
|
||||||
HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
|
HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
|
||||||
resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
||||||
results = JsonSerializer.Deserialize<Results>(resultsJson);
|
results = JsonSerializer.Deserialize<Results>(resultsJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||||
}
|
}
|
||||||
if (!results.Success)
|
if (!results.Success)
|
||||||
results.Errors.Add(results.ToString());
|
results.Errors.Add(results.ToString());
|
||||||
@ -45,6 +45,7 @@ public partial class WS
|
|||||||
exception = exception.InnerException;
|
exception = exception.InnerException;
|
||||||
}
|
}
|
||||||
results.Errors ??= new List<string>();
|
results.Errors ??= new List<string>();
|
||||||
|
results.Errors.Add(resultsJson);
|
||||||
results.Errors.Add(stringBuilder.ToString());
|
results.Errors.Add(stringBuilder.ToString());
|
||||||
}
|
}
|
||||||
return new(resultsJson, results);
|
return new(resultsJson, results);
|
||||||
|
@ -152,9 +152,11 @@ public class ProcessDataStandardFormat
|
|||||||
{
|
{
|
||||||
string value;
|
string value;
|
||||||
string[] segments;
|
string[] segments;
|
||||||
|
List<string> lines = new();
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
foreach (string bodyLine in bodyLines)
|
foreach (string bodyLine in bodyLines)
|
||||||
{
|
{
|
||||||
|
_ = stringBuilder.Clear();
|
||||||
_ = stringBuilder.Append('{');
|
_ = stringBuilder.Append('{');
|
||||||
segments = bodyLine.Trim().Split('\t');
|
segments = bodyLine.Trim().Split('\t');
|
||||||
if (!lookForNumbers)
|
if (!lookForNumbers)
|
||||||
@ -179,10 +181,11 @@ public class ProcessDataStandardFormat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
||||||
_ = stringBuilder.AppendLine("},");
|
_ = stringBuilder.AppendLine("}");
|
||||||
|
lines.Add(stringBuilder.ToString());
|
||||||
}
|
}
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 3, 3);
|
string json = $"[{string.Join(",", lines)}]";
|
||||||
results = JsonSerializer.Deserialize<JsonElement[]>(string.Concat("[", stringBuilder, "]"));
|
results = JsonSerializer.Deserialize<JsonElement[]>(json);
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public enum Test
|
|||||||
Denton = 9,
|
Denton = 9,
|
||||||
DiffusionLength = 45,
|
DiffusionLength = 45,
|
||||||
GRATXTCenter = 51,
|
GRATXTCenter = 51,
|
||||||
GRATXTEdge = 52, //Largest
|
GRATXTEdge = 52,
|
||||||
GrowthRateXML = 50,
|
GrowthRateXML = 50,
|
||||||
Hall = 10,
|
Hall = 10,
|
||||||
HgCV = 23,
|
HgCV = 23,
|
||||||
@ -38,6 +38,7 @@ public enum Test
|
|||||||
RPMPLRatio = 17,
|
RPMPLRatio = 17,
|
||||||
RPMXY = 15,
|
RPMXY = 15,
|
||||||
SP1 = 8,
|
SP1 = 8,
|
||||||
|
SRP2100 = 53, //Largest
|
||||||
Tencor = 7,
|
Tencor = 7,
|
||||||
UV = 35,
|
UV = 35,
|
||||||
VerificationLehighton = 14,
|
VerificationLehighton = 14,
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class EC : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static EC EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static EC() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public EC() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public EC(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new EC(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -40,7 +40,7 @@ public class EC : EAFLoggingUnitTesting
|
|||||||
[ClassCleanup()]
|
[ClassCleanup()]
|
||||||
public static void ClassCleanup()
|
public static void ClassCleanup()
|
||||||
{
|
{
|
||||||
EAFLoggingUnitTesting.Logger?.LogInformation("Cleanup");
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
EAFLoggingUnitTesting?.Dispose();
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
Adaptation/_Tests/Extract/Production/v2.59.0/EC.cs
Normal file
21
Adaptation/_Tests/Extract/Production/v2.59.0/EC.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class EC
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_59_0.EC _EC;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_59_0.EC.ClassInitialize(testContext);
|
||||||
|
_EC = CreateSelfDescription.Production.v2_59_0.EC.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -343,7 +343,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
return result as T;
|
return result as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static CellInstanceVersion GetCellInstanceVersion(string url)
|
public static CellInstanceVersion GetCellInstanceVersion(string url)
|
||||||
{
|
{
|
||||||
CellInstanceVersion result;
|
CellInstanceVersion result;
|
||||||
byte[] byteArray;
|
byte[] byteArray;
|
||||||
@ -487,7 +487,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
else if (i == 1)
|
else if (i == 1)
|
||||||
_ = stringBuilder.
|
_ = stringBuilder.
|
||||||
AppendLine().
|
AppendLine().
|
||||||
Append("static ").Append(cellInstanceNameWithoutHyphen).AppendLine("() => DummyRoot = @\"\\\\messv02ecc1.ec.local\\EC_Characterization_Si\\Dummy\";").
|
Append("static ").Append(cellInstanceNameWithoutHyphen).AppendLine("() => DummyRoot = @\"\\\\mesfs.infineon.com\\EC_Characterization_Si\\Dummy\";").
|
||||||
AppendLine().
|
AppendLine().
|
||||||
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)").
|
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)").
|
||||||
AppendLine("{").
|
AppendLine("{").
|
||||||
@ -874,7 +874,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Dictionary<string, object> GetKeyValuePairs(string cellInstanceName, string cellInstanceVersionName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, List<Tuple<string, string>> equipmentDictionaryIsAlwaysEnabledEvents)
|
protected Dictionary<string, object> GetKeyValuePairs(string cellInstanceName, string cellInstanceVersionName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, List<Tuple<string, string>> equipmentDictionaryIsAlwaysEnabledEvents, int edaConnectionPortNumber)
|
||||||
{
|
{
|
||||||
Dictionary<string, object> results = new()
|
Dictionary<string, object> results = new()
|
||||||
{
|
{
|
||||||
@ -883,6 +883,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
{ nameof(cellInstanceName), cellInstanceName },
|
{ nameof(cellInstanceName), cellInstanceName },
|
||||||
{ nameof(equipmentTypeName), equipmentTypeName },
|
{ nameof(equipmentTypeName), equipmentTypeName },
|
||||||
{ nameof(cellInstanceVersionName), cellInstanceVersionName },
|
{ nameof(cellInstanceVersionName), cellInstanceVersionName },
|
||||||
|
{ nameof(edaConnectionPortNumber), edaConnectionPortNumber },
|
||||||
{ nameof(equipmentDictionaryName), equipmentDictionaryName },
|
{ nameof(equipmentDictionaryName), equipmentDictionaryName },
|
||||||
{ nameof(cellInstanceConnectionName), cellInstanceConnectionName },
|
{ nameof(cellInstanceConnectionName), cellInstanceConnectionName },
|
||||||
{ nameof(FileConnectorConfiguration), fileConnectorConfiguration },
|
{ nameof(FileConnectorConfiguration), fileConnectorConfiguration },
|
||||||
@ -930,7 +931,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
Tuple<string, IList<ModelObjectParameterDefinition>> modelObjectParametersTuple = GetModelObjectParameters(equipmentTypeVersionTuple);
|
Tuple<string, IList<ModelObjectParameterDefinition>> modelObjectParametersTuple = GetModelObjectParameters(equipmentTypeVersionTuple);
|
||||||
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
||||||
Tuple<string, List<Tuple<string, string>>> equipmentDictionaryIsAlwaysEnabledEventsTuple = GetEquipmentDictionaryIsAlwaysEnabledEventsTuple(equipmentDictionaryVersionTuple);
|
Tuple<string, List<Tuple<string, string>>> equipmentDictionaryIsAlwaysEnabledEventsTuple = GetEquipmentDictionaryIsAlwaysEnabledEventsTuple(equipmentDictionaryVersionTuple);
|
||||||
Dictionary<string, object> objects = GetKeyValuePairs(mbn.CellInstanceName, mbn.CellInstanceVersionName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2);
|
Dictionary<string, object> objects = GetKeyValuePairs(mbn.CellInstanceName, mbn.CellInstanceVersionName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2, cellInstanceVersionTuple.Item2.EdaConnection.PortNumber);
|
||||||
string json = JsonSerializer.Serialize(objects, new JsonSerializerOptions { WriteIndented = true });
|
string json = JsonSerializer.Serialize(objects, new JsonSerializerOptions { WriteIndented = true });
|
||||||
results = new string[] { fileInfo.FullName, json };
|
results = new string[] { fileInfo.FullName, json };
|
||||||
return results;
|
return results;
|
||||||
@ -983,7 +984,7 @@ public class AdaptationTesting : ISMTP
|
|||||||
_ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder);
|
_ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: false);
|
result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, connectionCount: cellInstanceVersionTuple.Item2.EquipmentConnections.Length);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class LoggingUnitTesting : UnitTesting, IDisposable
|
|||||||
base(testContext, declaringType)
|
base(testContext, declaringType)
|
||||||
{
|
{
|
||||||
_LoggerFactory = new LoggerFactory();
|
_LoggerFactory = new LoggerFactory();
|
||||||
if (testContext is null || declaringType is null)
|
if (testContext is null || declaringType is null || _IsEnvironment is null)
|
||||||
{
|
{
|
||||||
_ConfigurationRoot = null;
|
_ConfigurationRoot = null;
|
||||||
_DefaultLogLevel = null;
|
_DefaultLogLevel = null;
|
||||||
|
@ -29,40 +29,45 @@ public class UnitTesting
|
|||||||
{
|
{
|
||||||
string waitFor = "\"WaitFor\":";
|
string waitFor = "\"WaitFor\":";
|
||||||
string projectDirectory = GetProjectDirectory(testContext);
|
string projectDirectory = GetProjectDirectory(testContext);
|
||||||
_TestContextPropertiesAsJson = JsonSerializer.Serialize(testContext.Properties, new JsonSerializerOptions { WriteIndented = true });
|
if (string.IsNullOrEmpty(projectDirectory))
|
||||||
_HasWaitForProperty = _TestContextPropertiesAsJson.Contains(waitFor);
|
_IsEnvironment = null;
|
||||||
string vsCodeDirectory = Path.Combine(projectDirectory, ".vscode");
|
else
|
||||||
if (!Directory.Exists(vsCodeDirectory))
|
|
||||||
_ = Directory.CreateDirectory(vsCodeDirectory);
|
|
||||||
string launchText = GetLaunchText();
|
|
||||||
File.WriteAllText(Path.Combine(vsCodeDirectory, "launch.json"), launchText);
|
|
||||||
if (_HasWaitForProperty)
|
|
||||||
{
|
{
|
||||||
for (int i = 0; i < int.MaxValue; i++)
|
_TestContextPropertiesAsJson = JsonSerializer.Serialize(testContext.Properties, new JsonSerializerOptions { WriteIndented = true });
|
||||||
|
_HasWaitForProperty = _TestContextPropertiesAsJson.Contains(waitFor);
|
||||||
|
string vsCodeDirectory = Path.Combine(projectDirectory, ".vscode");
|
||||||
|
if (!Directory.Exists(vsCodeDirectory))
|
||||||
|
_ = Directory.CreateDirectory(vsCodeDirectory);
|
||||||
|
string launchText = GetLaunchText();
|
||||||
|
File.WriteAllText(Path.Combine(vsCodeDirectory, "launch.json"), launchText);
|
||||||
|
if (_HasWaitForProperty)
|
||||||
{
|
{
|
||||||
if (!_TestContextPropertiesAsJson.Contains($"{waitFor} \"Debugger.IsAttached\"") || Debugger.IsAttached)
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
break;
|
{
|
||||||
Thread.Sleep(500);
|
if (!_TestContextPropertiesAsJson.Contains($"{waitFor} \"Debugger.IsAttached\"") || Debugger.IsAttached)
|
||||||
|
break;
|
||||||
|
Thread.Sleep(500);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
MethodBase methodBase = declaringType.GetMethod(testContext.TestName);
|
||||||
MethodBase methodBase = declaringType.GetMethod(testContext.TestName);
|
if (methodBase is not null)
|
||||||
if (methodBase is not null)
|
|
||||||
{
|
|
||||||
TestCategoryAttribute testCategoryAttribute = methodBase.GetCustomAttribute<TestCategoryAttribute>();
|
|
||||||
if (testCategoryAttribute is not null)
|
|
||||||
{
|
{
|
||||||
foreach (string testCategory in testCategoryAttribute.TestCategories)
|
TestCategoryAttribute testCategoryAttribute = methodBase.GetCustomAttribute<TestCategoryAttribute>();
|
||||||
_IsEnvironment = new IsEnvironment(testCategory);
|
if (testCategoryAttribute is not null)
|
||||||
|
{
|
||||||
|
foreach (string testCategory in testCategoryAttribute.TestCategories)
|
||||||
|
_IsEnvironment = new IsEnvironment(testCategory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
_IsEnvironment ??= new IsEnvironment(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: Debugger.IsAttached, nullASPNetCoreEnvironmentIsProduction: !Debugger.IsAttached);
|
||||||
}
|
}
|
||||||
_IsEnvironment ??= new IsEnvironment(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: Debugger.IsAttached, nullASPNetCoreEnvironmentIsProduction: !Debugger.IsAttached);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string GetProjectDirectory(TestContext testContext)
|
internal static string GetProjectDirectory(TestContext testContext)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
string[] checkFiles = null;
|
string[] checkFiles;
|
||||||
result = Path.GetDirectoryName(testContext.DeploymentDirectory);
|
result = Path.GetDirectoryName(testContext.DeploymentDirectory);
|
||||||
for (int i = 0; i < int.MaxValue; i++)
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
{
|
{
|
||||||
@ -73,8 +78,6 @@ public class UnitTesting
|
|||||||
break;
|
break;
|
||||||
result = Path.GetDirectoryName(result);
|
result = Path.GetDirectoryName(result);
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(result) || checkFiles is null || !checkFiles.Any())
|
|
||||||
throw new Exception(result);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
91
Adaptation/_Tests/Static/EC.cs
Normal file
91
Adaptation/_Tests/Static/EC.cs
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Static;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class EC : LoggingUnitTesting, IDisposable
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static EC LoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
public EC() : base(testContext: null, declaringType: null)
|
||||||
|
{
|
||||||
|
if (LoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public EC(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext) => LoggingUnitTesting ??= new EC(testContext);
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
LoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
LoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void TestDateTime()
|
||||||
|
{
|
||||||
|
DateTime dateTime = DateTime.Now;
|
||||||
|
Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production()
|
||||||
|
{
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
StringBuilder results = new();
|
||||||
|
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
||||||
|
{
|
||||||
|
new("EC", "v2.59.0"),
|
||||||
|
};
|
||||||
|
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
||||||
|
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
foreach ((string cellInstanceName, string cellInstanceVersionName) in collection)
|
||||||
|
{
|
||||||
|
cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{production}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
|
||||||
|
_ = results.AppendLine($"{cellInstanceName}\t{cellInstanceVersionName}\t{cellInstanceVersion.EdaConnection.PortNumber}");
|
||||||
|
}
|
||||||
|
string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber";
|
||||||
|
if (!Directory.Exists(sourceDirectory))
|
||||||
|
_ = Directory.CreateDirectory(sourceDirectory);
|
||||||
|
File.WriteAllText(Path.Combine(sourceDirectory, $"{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv"), results.ToString());
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void CellInstanceVersionEdaConnectionPortNumber()
|
||||||
|
{
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
StringBuilder results = new();
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string[] files = Directory.GetFiles("D:/Tmp", "*.tsv", SearchOption.TopDirectoryOnly);
|
||||||
|
foreach (string file in files)
|
||||||
|
_ = results.Append(File.ReadAllText(file));
|
||||||
|
File.WriteAllText($"D:/Tmp/all.tsv", results.ToString());
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,14 +1,8 @@
|
|||||||
{
|
{
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||||
"nuget-clear": "dotnet nuget locals all --clear",
|
"kanbn.board": "kanbn board",
|
||||||
"build": "dotnet build --runtime win-x64 --self-contained",
|
"kanbn.board.json": "kanbn board -j > .kanbn/board.json",
|
||||||
"build-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://packagemanagement.eu.infineon.com:4430/api/v2/",
|
|
||||||
"build-nuget-And-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/",
|
|
||||||
"build-All-Sources": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/ --source https://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json --source http://192.168.0.73:5002/v3/index.json",
|
|
||||||
"dotnet-format": "dotnet format --report .vscode --verbosity detailed --severity warn",
|
|
||||||
"MSBuild": "\"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe\" /target:Build /restore:True /p:RestoreSources=https://api.nuget.org/v3/index.json%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=Debug;TargetFrameworkVersion=v4.8 ../MET08RESIMAPCDE.csproj",
|
|
||||||
"pull": "git pull",
|
|
||||||
"garbage-collect": "git gc"
|
"garbage-collect": "git gc"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,7 +11,8 @@
|
|||||||
<RootNamespace>EC</RootNamespace>
|
<RootNamespace>EC</RootNamespace>
|
||||||
<AssemblyName>EC</AssemblyName>
|
<AssemblyName>EC</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
<RuntimeIdentifier Condition="'$(Configuration)' == 'Debug'">win-x86</RuntimeIdentifier>
|
||||||
|
<RuntimeIdentifier Condition="'$(Configuration)' == 'Release'">win</RuntimeIdentifier>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
@ -150,10 +151,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Infineon.EAF.Runtime">
|
<PackageReference Include="Infineon.EAF.Runtime">
|
||||||
<Version>2.47.0</Version>
|
<Version>2.59.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="System.Text.Json">
|
<PackageReference Include="System.Text.Json">
|
||||||
<Version>6.0.3</Version>
|
<Version>8.0.3</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting">
|
<PackageReference Include="Microsoft.Extensions.Hosting">
|
||||||
<Version>6.0.3</Version>
|
<Version>6.0.3</Version>
|
||||||
|
@ -165,7 +165,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
|
|||||||
Equipment.SelfDescriptionBuilder.AddParameterTypeDefinition(structuredType);
|
Equipment.SelfDescriptionBuilder.AddParameterTypeDefinition(structuredType);
|
||||||
}
|
}
|
||||||
if (!parameterTypeDefinitions.ContainsKey(jsonProperty.Value.ValueKind))
|
if (!parameterTypeDefinitions.ContainsKey(jsonProperty.Value.ValueKind))
|
||||||
throw new Exception(string.Concat('{', jsonProperty.Value.ValueKind, "} is not mapped!"));
|
throw new Exception(string.Concat('<', jsonProperty.Name, "> {", jsonProperty.Value.ValueKind, "} is not mapped!"));
|
||||||
}
|
}
|
||||||
foreach (JsonProperty jsonProperty in jsonProperties)
|
foreach (JsonProperty jsonProperty in jsonProperties)
|
||||||
{
|
{
|
||||||
@ -197,7 +197,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
|
|||||||
FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration);
|
FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration);
|
||||||
string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName;
|
string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName;
|
||||||
IList<ModelObjectParameterDefinition> modelObjectParameters = Mapper.Map(ConfiguredParameters);
|
IList<ModelObjectParameterDefinition> modelObjectParameters = Mapper.Map(ConfiguredParameters);
|
||||||
_FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: true);
|
_FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
|
||||||
if (_FileRead.IsEvent)
|
if (_FileRead.IsEvent)
|
||||||
AddParameterRangeAndEvent();
|
AddParameterRangeAndEvent();
|
||||||
}
|
}
|
||||||
@ -338,7 +338,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
|
|||||||
if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array)
|
if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
IList<ModelObjectParameterDefinition> modelObjectParameters = JsonSerializer.Deserialize<IList<ModelObjectParameterDefinition>>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions);
|
IList<ModelObjectParameterDefinition> modelObjectParameters = JsonSerializer.Deserialize<IList<ModelObjectParameterDefinition>>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions);
|
||||||
_FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: false);
|
_FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
|
||||||
results = _FileRead.ReExtract();
|
results = _FileRead.ReExtract();
|
||||||
if (results?.Item2 is null)
|
if (results?.Item2 is null)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
|
172
Jenkinsfile
vendored
172
Jenkinsfile
vendored
@ -1,172 +0,0 @@
|
|||||||
#!/usr/bin/env groovy
|
|
||||||
/* groovylint-disable CompileStatic, ConsecutiveStringConcatenation, DuplicateNumberLiteral, DuplicateStringLiteral, LineLength, NestedBlockDepth, NoDef, VariableTypeRequired */
|
|
||||||
import groovy.transform.Field
|
|
||||||
|
|
||||||
@Field String _DDrive = 'D:/'
|
|
||||||
@Field String _GitName = 'EC'
|
|
||||||
@Field String _AssemblyName = '...'
|
|
||||||
@Field String _TargetLocation = '...'
|
|
||||||
@Field String _GitCommitSeven = '...'
|
|
||||||
@Field String _TestProjectDirectory = 'Adaptation'
|
|
||||||
@Field String _AgentStaging = 'mestsa07ec-ecmeseaf'
|
|
||||||
@Field String _DDriveNet = "${_DDrive}Framework4.8"
|
|
||||||
@Field String _AgentProduction = 'messa08ec-ecmeseaf'
|
|
||||||
@Field String _AgentDevelopment = 'mestsa003-mesedasvc'
|
|
||||||
@Field String _ProgramFilesDotnet = 'C:/Program Files/dotnet/dotnet.exe'
|
|
||||||
@Field String _ProgramFilesMSBuild = 'C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe'
|
|
||||||
|
|
||||||
pipeline {
|
|
||||||
agent {
|
|
||||||
label env.JENKINS_ENVIRONMENT == 'Development' ? _AgentDevelopment : env.JENKINS_ENVIRONMENT == 'Staging' ? _AgentStaging : env.JENKINS_ENVIRONMENT == 'Production' ? _AgentProduction : 'Else'
|
|
||||||
}
|
|
||||||
parameters {
|
|
||||||
string(name: 'GIT_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'mestsa003.infineon.com' : 'mestsa07ec.ec.local', description: 'git server')
|
|
||||||
string(name: 'DEFAULT_FILE_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'messv02ecc1_ec_local' : 'messv02ecc1.ec.local', description: 'Default file server...')
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
// stage('Git') {
|
|
||||||
// steps {
|
|
||||||
// bat(returnStatus: true, script: 'git init')
|
|
||||||
// bat(returnStatus: true, script: 'git remote add origin \\\\' + params.GIT_SERVER + '\\Git\\' + _GitName + '.git')
|
|
||||||
// bat(returnStatus: true, script: 'git pull origin master')
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Setup') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
_AssemblyName = "${env.JOB_NAME}"
|
|
||||||
// _GitCommitSeven = '1234567'
|
|
||||||
_GitCommitSeven = env.GIT_COMMIT.substring(0, 7)
|
|
||||||
def files = findFiles(glob: '*.csproj')
|
|
||||||
if (files.length != 1) {
|
|
||||||
error("Build failed because couldn't find a *.csproj file")
|
|
||||||
}
|
|
||||||
echo """
|
|
||||||
${files[0].name}
|
|
||||||
${files[0].path}
|
|
||||||
${files[0].directory}
|
|
||||||
${files[0].length}
|
|
||||||
${files[0].lastModified}
|
|
||||||
"""
|
|
||||||
_AssemblyName = files[0].name.split('[.]csproj')[0]
|
|
||||||
_TargetLocation = "\\\\${params.DEFAULT_FILE_SERVER}\\EC_EAFRepository\\${env.JENKINS_ENVIRONMENT}\\DeploymentStorage\\Adaptation_${_AssemblyName}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Info') {
|
|
||||||
steps {
|
|
||||||
echo "_AssemblyName ${_AssemblyName}" // ...
|
|
||||||
echo "BUILD_NUMBER ${env.BUILD_NUMBER}" // 11
|
|
||||||
echo "DEFAULT_FILE_SERVER ${params.DEFAULT_FILE_SERVER}" // 11
|
|
||||||
echo "GIT_BRANCH ${env.GIT_BRANCH}" // origin/master
|
|
||||||
echo "GIT_COMMIT ${env.GIT_COMMIT}" // 73b814069f2cf0173a62a8228815a9bc9ba93c41
|
|
||||||
echo "GIT_SERVER ${params.GIT_SERVER}" // ...
|
|
||||||
echo "GIT_URL ${env.GIT_URL}" // D:\ProgramData\Git\....git
|
|
||||||
echo "JENKINS_ENVIRONMENT ${env.JENKINS_ENVIRONMENT}" // 11
|
|
||||||
echo "JENKINS_URL ${env.JENKINS_URL}" // http://localhost:8080/
|
|
||||||
echo "JOB_NAME ${env.JOB_NAME}" // ...
|
|
||||||
echo "WORKSPACE ${env.WORKSPACE}" // D:\.jenkins\_\...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Restore') {
|
|
||||||
// steps {
|
|
||||||
// bat(returnStatus: true, script: 'dotnet --info')
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Safe storage of app secrets') {
|
|
||||||
steps {
|
|
||||||
dir(_TestProjectDirectory) {
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets init')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "BuildNumber" "' + env.BUILD_NUMBER + '"')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "GitCommitSeven" "' + _GitCommitSeven + '"')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'user-secrets set "Server" "' + params.DEFAULT_FILE_SERVER + '"')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Core Build') {
|
|
||||||
steps {
|
|
||||||
echo "Build number is ${currentBuild.number}"
|
|
||||||
dir(_TestProjectDirectory) {
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
|
|
||||||
'build --runtime win-x64 --self-contained --verbosity quiet')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Test') {
|
|
||||||
// options {
|
|
||||||
// timeout(time: 10, unit: 'MINUTES')
|
|
||||||
// }
|
|
||||||
// steps {
|
|
||||||
// dir(_TestProjectDirectory) {
|
|
||||||
// bat('dotnet --info')
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Framework Build') {
|
|
||||||
steps {
|
|
||||||
echo "Build number is ${currentBuild.number}"
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
|
|
||||||
'/target:Restore ' +
|
|
||||||
'/detailedsummary ' +
|
|
||||||
'/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
|
|
||||||
'/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
|
|
||||||
_AssemblyName + '.csproj')
|
|
||||||
bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
|
|
||||||
'/target:Build ' +
|
|
||||||
'/detailedsummary ' +
|
|
||||||
'/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
|
|
||||||
'/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
|
|
||||||
_AssemblyName + '.csproj')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Commit Id') {
|
|
||||||
steps {
|
|
||||||
dir('bin/Debug') {
|
|
||||||
writeFile file: "${_AssemblyName}.txt", text: "${env.GIT_COMMIT}-${env.BUILD_NUMBER}-${env.GIT_URL}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Package') {
|
|
||||||
steps {
|
|
||||||
fileOperations([fileZipOperation(folderPath: 'bin/Debug', outputFolderPath: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug")])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*", renameFiles: false, sourceCaptureExpression: '', targetLocation: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug", targetNameExpression: '')])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// stage('Force Fail') {
|
|
||||||
// steps {
|
|
||||||
// error("Build failed because of this and that..")
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
stage('Copy Files to: file-share') {
|
|
||||||
steps {
|
|
||||||
dir('bin/Debug') {
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.txt", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.dll", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.exe", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.pdb", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
dir('bin') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir('obj') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir(_TestProjectDirectory + '/bin') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
dir(_TestProjectDirectory + '/obj') {
|
|
||||||
deleteDir()
|
|
||||||
}
|
|
||||||
cleanWs()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.47.0.0")]
|
[assembly: AssemblyVersion("2.59.0.0")]
|
||||||
[assembly: AssemblyFileVersion("2.47.0.0")]
|
[assembly: AssemblyFileVersion("2.59.0.0")]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user