Skip to content

Commit

Permalink
JoScheduler Hangfire prototype #757
Browse files Browse the repository at this point in the history
  • Loading branch information
apobekiaris committed Dec 6, 2020
1 parent b9caa3a commit e655f29
Show file tree
Hide file tree
Showing 515 changed files with 25,693 additions and 4,593 deletions.
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"paket": {
"version": "5.252.0",
"version": "5.257.0",
"commands": [
"paket"
]
Expand Down
10 changes: 3 additions & 7 deletions Build/AssemblyVersions.ps1
@@ -1,15 +1,11 @@
param(
$sourceDir
)
$assemblyInfo = Get-Content "$sourceDir\src\Tests\TestsLib\Properties\AssemblyInfo.cs"
[PSCustomObject]@{
Name = "Xpand.TestsLib"
Version = [System.Text.RegularExpressions.Regex]::Match($assemblyInfo, 'Version\("([^"]*)').Groups[1].Value
}|Write-Output
$assemblyInfo = Get-Content "$sourceDir\src\Common\AssemblyInfoVersion.cs"
$version=[System.Text.RegularExpressions.Regex]::Match($assemblyInfo, 'Version = "([^"]*)').Groups[1].Value
(Get-ChildItem "$sourceDir\src\Modules" "*.csproj" -Recurse)+(Get-ChildItem "$sourceDir\src\Extensions" "*.csproj" -Recurse) | ForEach-Object {
$assemblyInfo = Get-Content "$($_.DirectoryName)\Properties\AssemblyInfo.cs"
[PSCustomObject]@{
Name = [System.IO.Path]::GetFileNameWithoutExtension($_.FullName)
Version = [System.Text.RegularExpressions.Regex]::Match($assemblyInfo, 'Version\("([^"]*)').Groups[1].Value
Version = $version
}
}
4 changes: 1 addition & 3 deletions Build/BuildDevExpress.XAF.ps1
Expand Up @@ -12,7 +12,6 @@ Properties {
$branch = $null
$CustomVersion = $false
$Root = "$nugetbin\..\..\"
$ChangedModules=@()
}


Expand Down Expand Up @@ -105,7 +104,6 @@ Task Compile -precondition { return $compile } {
Task CreateNuspec {
Invoke-Script {
$a = @{
ChangedModules = $ChangedModules
DxVersion = $dxVersion
Branch=$branch
}
Expand All @@ -115,7 +113,7 @@ Task CreateNuspec {

Task PackNuspec {
Invoke-Script {
& "$PSScriptRoot\PackNuspec.ps1" -branch $branch -ChangedModules $ChangedModules
& "$PSScriptRoot\PackNuspec.ps1" -branch $branch
} -Maximum 3
}

Expand Down
65 changes: 29 additions & 36 deletions Build/BuildPipeline.ps1
Expand Up @@ -44,16 +44,15 @@ Invoke-Script{
. "$SourcePath\build\UpdateDependencies.ps1" $CustomVersion
. "$SourcePath\build\UpdateLatestProjectVersion.ps1"



$bArgs = @{
packageSources = "$(Get-PackageFeed -Xpand);$DxApiFeed"
tasklist = $tasklist
dxVersion = $CustomVersion
ChangedModules = @($updateVersion)
Branch = $Branch
}
Write-HostFormatted "ChangedModules:" -Section
$bArgs.ChangedModules|Sort-Object | Out-String

$SourcePath | ForEach-Object {
Set-Location $_
Move-PaketSource 0 $DXApiFeed
Expand All @@ -73,40 +72,34 @@ Invoke-Script{
Write-HostFormatted "PaketInstall $SourcePath (due to different Version)" -section
dotnet paket install
}
if ($Branch -eq "lab") {
Write-HostFormatted "checking for New DevExpress Version ($CustomVersion) " -Section
$filter = "DevExpress*"
. "$SourcePath\build\targets\SignHangfire.ps1"
# if ($Branch -eq "lab") {
# Write-HostFormatted "checking for New DevExpress Version ($CustomVersion) " -Section
# $filter = "DevExpress*"

[version]$currentVersion = Get-VersionPart (Get-DevExpressVersion) Build
$outputFolder = "$([System.IO.Path]::GetTempPath())\GetNugetpackage"
$rxdllpath=Get-ChildItem ((get-item (Get-NugetPackage -Name Xpand.XAF.Modules.Reactive -Source (Get-PackageFeed -Xpand) -OutputFolder $outputFolder -ResultType NupkgFile )).DirectoryName) "Xpand.XAF.Modules.Reactive.dll" -Recurse|Select-Object -First 1
$assemblyReference=Get-AssemblyReference $rxdllpath.FullName
[version]$publishdeVersion = Get-VersionPart (($assemblyReference | Where-Object { $_.Name -like $filter }).version) Build
if ($publishdeVersion -lt $currentVersion) {
Write-HostFormatted "new DX version detected $currentVersion"
$trDeps = Get-NugetPackageDependencies DevExpress.ExpressApp.Core.all -Source $env:DxFeed -filter $filter -Recurse
Push-Location
$projectPackages = (Get-ChildItem "$SourcePath\src\modules" *.csproj -Recurse) + (Get-ChildItem "$SourcePath\src\extensions" *.csproj -Recurse) | Invoke-Parallel -VariablesToImport "filter" -Script {
Push-Location $_.DirectoryName
[PSCustomObject]@{
Project = $_
InstalledPackages = (Invoke-PaketShowInstalled -Project $_.FullName) | Where-Object { $_.id -like $filter }
}
Pop-Location
}
($projectPackages | Where-Object { $_.InstalledPackages.id | Where-Object { $_ -in $trDeps.id } }).Project | Get-Item | ForEach-Object {
Write-HostFormatted "Increase $($_.basename) revision" -ForegroundColor Magenta
Update-AssemblyInfo $_.DirectoryName -Revision
$bArgs.ChangedModules += $_.basename
}
}
}

if ($bArgs.ChangedModules) {
$bArgs.ChangedModules = $bArgs.ChangedModules | Sort-Object -Unique
}
Write-HostFormatted "ChangedModules" -Section
$bArgs.ChangedModules
# [version]$currentVersion = Get-VersionPart (Get-DevExpressVersion) Build
# $outputFolder = "$([System.IO.Path]::GetTempPath())\GetNugetpackage"
# $rxdllpath=Get-ChildItem ((get-item (Get-NugetPackage -Name Xpand.XAF.Modules.Reactive -Source (Get-PackageFeed -Xpand) -OutputFolder $outputFolder -ResultType NupkgFile )).DirectoryName) "Xpand.XAF.Modules.Reactive.dll" -Recurse|Select-Object -First 1
# $assemblyReference=Get-AssemblyReference $rxdllpath.FullName
# [version]$publishdeVersion = Get-VersionPart (($assemblyReference | Where-Object { $_.Name -like $filter }).version) Build
# if ($publishdeVersion -lt $currentVersion) {
# Write-HostFormatted "new DX version detected $currentVersion"
# $trDeps = Get-NugetPackageDependencies DevExpress.ExpressApp.Core.all -Source $env:DxFeed -filter $filter -Recurse
# Push-Location
# $projectPackages = (Get-ChildItem "$SourcePath\src\modules" *.csproj -Recurse) + (Get-ChildItem "$SourcePath\src\extensions" *.csproj -Recurse) | Invoke-Parallel -VariablesToImport "filter" -Script {
# Push-Location $_.DirectoryName
# [PSCustomObject]@{
# Project = $_
# InstalledPackages = (Invoke-PaketShowInstalled -Project $_.FullName) | Where-Object { $_.id -like $filter }
# }
# Pop-Location
# }
# ($projectPackages | Where-Object { $_.InstalledPackages.id | Where-Object { $_ -in $trDeps.id } }).Project | Get-Item | ForEach-Object {
# Write-HostFormatted "Increase $($_.basename) revision" -ForegroundColor Magenta
# Update-AssemblyInfo $_.DirectoryName -Revision
# }
# }
# }


& $SourcePath\go.ps1 @bArgs
Expand Down
84 changes: 48 additions & 36 deletions Build/CreateNuspec.ps1
@@ -1,27 +1,49 @@
param(
$root = [System.IO.Path]::GetFullPath("$PSScriptRoot\..\"),
[switch]$Release,
$dxVersion=$env:FirstDxVersion,
$branch="lab"
$dxVersion = $env:FirstDxVersion,
$branch = "lab"
)

$ErrorActionPreference = "Stop"
# Import-XpandPwsh

New-Item -Path "$root\bin\Nupkg" -ItemType Directory -ErrorAction SilentlyContinue -Force | Out-Null
[version]$modulesVersion=[System.Diagnostics.FileVersionInfo]::GetVersionInfo("$root\bin\Xpand.XAF.Modules.Reactive.dll" ).FileVersion
$versionConverterPath="$root\tools\Xpand.VersionConverter\Xpand.VersionConverter.nuspec"
[xml]$nuspec=Get-Content $versionConverterPath
[version]$vv=$nuspec.package.metadata.version
$nuspec.package.metadata.version="$($vv.major).$($modulesVersion.Minor).$($vv.build)"
[version]$modulesVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("$root\bin\Xpand.XAF.Modules.Reactive.dll" ).FileVersion
$versionConverterPath = "$root\tools\Xpand.VersionConverter\Xpand.VersionConverter.nuspec"
[xml]$nuspec = Get-Content $versionConverterPath
[version]$vv = $nuspec.package.metadata.version
$nuspec.package.metadata.version = "$($vv.major).$($modulesVersion.Minor).$($vv.build)"
$nuspec.Save($versionConverterPath)

$allProjects=Get-ChildItem $root *.csproj -Recurse | Select-Object -ExpandProperty BaseName
Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -notlike "*Test*" } | Invoke-Parallel -VariablesToImport @("allProjects","root","Release") -Script {
# Get-ChildItem "$root\src\" -Include "*Grid*.csproj" -Recurse | Where-Object { $_ -notlike "*Test*" } | foreach {
$allProjects = Get-ChildItem $root *.csproj -Recurse | Select-Object -ExpandProperty BaseName

Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -notlike "*Test*" } | Invoke-Parallel -VariablesToImport @("allProjects", "root", "Release") -Script {
# Get-ChildItem "$root\src\" -Include "*hang*.csproj" -Recurse | Where-Object { $_ -notlike "*Test*" } | foreach {
$addTargets = {
param (
$name
)
$a = [ordered]@{
src = "..\build\Targets\$name.targets"
target = "build\$($nuspec.package.metadata.id).targets"
}
if ($nuspecFileName -like "*Client*") {
$a.src = "..\$($a.src)"
}
Add-XmlElement -Owner $nuspec -elementname "file" -parent "files"-Attributes $a | Out-Null
$a = [ordered]@{
src = "..\build\Targets\$name.ps1"
target = "build\$name.ps1"
}
if ($nuspecFileName -like "*Client*") {
$a.src = "..\$($a.src)"
}
Add-XmlElement -Owner $nuspec -elementname "file" -parent "files"-Attributes $a | Out-Null
}
Set-Location $root
$projectPath = $_.FullName
"projectPath=$projectPath"

Write-Output "Creating Nuspec for $($_.baseName)"
$uArgs = @{
NuspecFilename = "$root\build\nuspec\$($_.baseName).nuspec"
Expand All @@ -30,7 +52,7 @@ Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -not
PublishedSource = (Get-PackageFeed -Xpand)
Release = $Release
ReadMe = $false
AllProjects = $allProjects
AllProjects = $allProjects
}
if (!(Test-Path $uArgs.NuspecFilename)) {
Set-Location $root\build\nuspec
Expand All @@ -44,22 +66,12 @@ Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -not

$nuspecFileName = "$root\build\nuspec\$($_.BaseName).nuspec"
[xml]$nuspec = Get-Content $nuspecFileName
$a = [ordered]@{
src = "..\build\CopySymbols.targets"
target="build\$($nuspec.package.metadata.id).targets"
}
if ($nuspecFileName -like "*Client*") {
$a.src = "..\$($a.src)"
}
Add-XmlElement -Owner $nuspec -elementname "file" -parent "files"-Attributes $a
$a = [ordered]@{
src = "..\build\CopySymbols.ps1"
target="build\CopySymbols.ps1"
}
if ($nuspecFileName -like "*Client*") {
$a.src = "..\$($a.src)"
$psTarget = "CopySymbols"
if (Test-Path "..\build\Targets\$($_.BaseName).targets") {
$psTarget = $_.BaseName
}
Add-XmlElement -Owner $nuspec -elementname "file" -parent "files"-Attributes $a
& $addTargets $psTarget
Add-XmlElement -Owner $nuspec -elementname "file" -parent "files"-Attributes $a | Out-Null
$readMePath = "$($_.DirectoryName)\ReadMe.md"
if (Test-Path $readMePath) {
$readMe = Get-Content $readMePath -Raw
Expand Down Expand Up @@ -89,14 +101,14 @@ Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -not
$ns.AddNamespace("ns", $nuspec.DocumentElement.NamespaceURI)

if ($nuspec.package.metaData.id -like "Xpand.XAF*" -or $nuspec.package.metaData.id -like "Xpand.Extensions.XAF*") {
Write-Output "Adding versionConverter dependency"

$versionConverter = [PSCustomObject]@{
id = "Xpand.VersionConverter"
version = ([xml](Get-Content "$root\Tools\Xpand.VersionConverter\Xpand.VersionConverter.nuspec")).package.metadata.version
targetFramework = "netstandard2.0"
}
$versionConverter |Out-String
Add-NuspecDependency $versionConverter.Id $versionConverter.Version $nuspec

Add-NuspecDependency $versionConverter.Id $versionConverter.Version $nuspec | Out-Null

}

Expand All @@ -105,17 +117,17 @@ Get-ChildItem "$root\src\" -Include "*.csproj" -Recurse | Where-Object { $_ -not
}

& "$root\build\UpdateAllNuspec.ps1" $root $Release $branch
if ($branch -eq "master"){
if ($branch -eq "master") {
Write-HostFormatted "Checking nuspec versions" -Section
$labnuspecs=Get-ChildItem "$root\build\nuspec" *.nuspec -Recurse|ForEach-Object{
[xml]$n=Get-xmlContent $_.FullName
$v=[version]$n.package.metadata.version
if ($v.Revision -gt 0){
$labnuspecs = Get-ChildItem "$root\build\nuspec" *.nuspec -Recurse | ForEach-Object {
[xml]$n = Get-xmlContent $_.FullName
$v = [version]$n.package.metadata.version
if ($v.Revision -gt 0) {
$n.package.metadata.id
}
}
$labnuspecs
if ($labnuspecs){
if ($labnuspecs) {
throw "labNuspec found in a release build"
}
}
44 changes: 3 additions & 41 deletions Build/PackNuspec.ps1
@@ -1,25 +1,19 @@
param(
$Branch = "master",
$Branch = "lab",
$nugetBin = "$PSScriptRoot\..\bin\Nupkg",
$sourceDir = "$PSScriptRoot\..",
$Filter ,
[switch]$SkipReadMe,
[string[]]$ChangedModules =((Get-ChildItem $nugetBin).BaseName|ConvertTo-PackageObject).Id
[switch]$SkipReadMe
)

Import-Module XpandPwsh -Force -Prefix X
$ErrorActionPreference = "Stop"
Get-Variable ChangedModules | Out-Variable

New-Item $nugetBin -ItemType Directory -Force | Out-Null
Get-ChildItem $nugetBin | Remove-Item -Force -Recurse
$toolPackages = @("Xpand.VersionConverter", "Xpand.XAF.ModelEditor")
& "$PSScriptRoot\PackTools.ps1" $toolPackages $Branch

if (!$ChangedModules) {
$ChangedModules
Write-HostFormatted "Skipping package creation as no package changed" -ForegroundColor Yellow
return
}

Set-Location $sourceDir
$assemblyVersions = & "$sourceDir\build\AssemblyVersions.ps1" $sourceDir
Expand Down Expand Up @@ -143,35 +137,3 @@ if ($Branch -ne "lab") {
Write-HostFormatted "Update ReadMe" -Section
& "$PSScriptRoot\UpdateReadMe.ps1"
}
Write-HostFormatted "Remove not changed packages" -Section
if ($ChangedModules) {

$core = @(Get-ChildItem "$sourceDir\bin" Xpand*.dll | Where-Object { $_.BaseName -in $ChangedModules } | ForEach-Object { (Get-AssemblyMetadata $_.FullName -Key platform).value } | Get-Unique | ForEach-Object {
"Xpand.XAF.$_.All"
})
if ($core | Select-String "core") {
$core += "Xpand.XAF.Win.All", "Xpand.XAF.Web.All"
}
$core = $core | Sort-Object -Unique
$ChangedModules += $core
$s = "lab"
if ($Branch -ne $s) {
$s = "Release"
}
$toolPackages | ForEach-Object {
if ((Find-XpandPackage $_ $s).Version -ne (Get-NugetPackageSearchMetadata $_ -Source $nugetBin).identity.version.version) {
$ChangedModules += $_
}
}

"ChangedModules:"
$ChangedModules | Write-Output
$nupks = Get-ChildItem $nugetBin
& (Get-NugetPath) list -source $nugetBin | ConvertTo-PackageObject | ForEach-Object {
$p = $_
if ($p.Id -notin $ChangedModules) {
$nupks | Where-Object { $_.BaseName -eq "$($p.Id).$($p.Version)" }
}
} | Remove-Item -Verbose

}
15 changes: 15 additions & 0 deletions Build/SingAssemblies.ps1
@@ -0,0 +1,15 @@
Invoke-PaketShowInstalled |Where-Object{$_.Id -match "hangfire"}
Get-ChildItem "$nugetPackagesFolder\hangfire.Core\$hangfireVersion\lib" "Hangfire.Core.dll" -Recurse | ForEach-Object {
$readerParams = New-Object Mono.Cecil.ReaderParameters
$readerParams.ReadWrite = $true
[Mono.Cecil.AssemblyDefinition]$asm = [Mono.Cecil.AssemblyDefinition]::ReadAssembly($_.FullName, $readerParams)

if (!$asm.Name.PublicKeyToken) {
$writeParams = New-Object Mono.Cecil.WriterParameters
$key = [System.IO.File]::ReadAllBytes("$versionConverterPath\build\Xpand.snk")
$writeParams.StrongNameKeyPair = [System.Reflection.StrongNameKeyPair]($key)
$asm.Write($writeParams)
}
$asm.dispose()

}

0 comments on commit e655f29

Please sign in to comment.