Skip to content

Jenkins docker support - #139

Open
prestoncraw wants to merge 15 commits into
developmentfrom
JenkinsDocker_Support
Open

Jenkins docker support#139
prestoncraw wants to merge 15 commits into
developmentfrom
JenkinsDocker_Support

Conversation

@prestoncraw

@prestoncraw prestoncraw commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • NOTE: THIS WILL FAIL JENKINS UNTIL JENKIN PATHS ARE UPDATED
  • Add an openSEE-aligned Jenkins pipeline for developmentmaster prereleases and master releases, including submodule checkout.
  • Build the production UI, publish SEBrowser as a self-contained Windows x64 application, and package the publish output as a deployable ZIP.
  • Deliver prerelease and release archives to the appropriate \\webhostfiles\Delivery\SEBrowser directories, comment prerelease availability on the development PR, and tag qualifying releases.
  • Add the openSEE PowerShell helpers for version advancement, Gemstone dependency updates, dependency PR creation, and PR comments, adapted only for SEBrowser.
  • Use Scripts/SEBrowser.version as the single three-part version source and remove the legacy AssemblyInfo.cs version attributes.
  • Add Windows and Linux publish profiles plus .NET 9 Docker image support for SEBrowser on port 8001.
  • Add an optional DisableAuthentication setting and middleware.
  • Add the Jenkins, Docker, and automation files to the solution and remove the obsolete nightly-build tooling.
  • Version the production UI bundle from package.json and display the UI version in the application.

Jenkins publishing and delivery-share operations were not executed during local validation.

Comment thread SEBrowser/SEBrowser.csproj Outdated
<Description></Description>
<Company>GridProtectionAlliance</Company>
<Product>SEBrowser</Product>
<Copyright>Copyright © 2020</Copyright>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<Copyright>Copyright © 2020</Copyright>
<Copyright>Copyright © 2026</Copyright>

Comment thread SEBrowser/SEBrowser.csproj Outdated
<AssemblyTitle>SEBrowser</AssemblyTitle>
<Description></Description>
<Company>GridProtectionAlliance</Company>
<Product>SEBrowser</Product>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<Product>SEBrowser</Product>
<Product>PQBrowser</Product>

Comment thread SEBrowser/SEBrowser.csproj Outdated
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<AssemblyTitle>SEBrowser</AssemblyTitle>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<AssemblyTitle>SEBrowser</AssemblyTitle>
<AssemblyTitle>PQBrowser</AssemblyTitle>

Comment thread Jenkinsfile Outdated
NUGET_PACKAGES = "D:\\NuGetCache"
publishDirectory = "${WORKSPACE}\\build\\Jenkins\\publish"
artifactDirectory = "${WORKSPACE}\\build\\Jenkins\\artifacts"
deliveryDirectory = "\\\\webhostfiles\\Delivery\\SEBrowser"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
deliveryDirectory = "\\\\webhostfiles\\Delivery\\SEBrowser"
deliveryDirectory = "\\\\webhostfiles\\Delivery\\PQBrowser"

Comment thread Jenkinsfile Outdated
script {
// Set current Version
def fileContent = powershell(returnStdout: true, script: '''
Get-Content -Path "./Scripts/SEBrowser.version" -Raw

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Get-Content -Path "./Scripts/SEBrowser.version" -Raw
Get-Content -Path "./Scripts/PQBrowser.version" -Raw

Comment thread Jenkinsfile Outdated
}
steps {
script {
env.seBrowserDockerTag = env.CHANGE_BRANCH == "${env.devBranch}" ? "${env.seBrowserVersion}a" : env.seBrowserVersion

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
env.seBrowserDockerTag = env.CHANGE_BRANCH == "${env.devBranch}" ? "${env.seBrowserVersion}a" : env.seBrowserVersion
env.pqBrowserDockerTag = env.CHANGE_BRANCH == "${env.devBranch}" ? "${env.pqBrowserVersion}a" : env.pqBrowserVersion

Comment thread Jenkinsfile Outdated
Comment on lines +205 to +207

powershell "msbuild /t:Publish /p:DeployOnBuild=true';'Configuration=Release';'PublishProfile='Docker Release Profile SEBrowser' './SEBrowser/SEBrowser.csproj' /nodeReuse:false -restore"
powershell "docker build --build-arg CONFIGURATION=Release -f .\\SEBrowser.dockerfile -t sebrowser:${env.seBrowserDockerTag} ."

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
powershell "msbuild /t:Publish /p:DeployOnBuild=true';'Configuration=Release';'PublishProfile='Docker Release Profile SEBrowser' './SEBrowser/SEBrowser.csproj' /nodeReuse:false -restore"
powershell "docker build --build-arg CONFIGURATION=Release -f .\\SEBrowser.dockerfile -t sebrowser:${env.seBrowserDockerTag} ."
powershell "msbuild /t:Publish /p:DeployOnBuild=true';'Configuration=Release';'PublishProfile='Docker Release Profile PQBrowser' './PQBrowser/PQBrowser.csproj' /nodeReuse:false -restore"
powershell "docker build --build-arg CONFIGURATION=Release -f .\\PQBrowser.dockerfile -t pqbrowser:${env.pqBrowserDockerTag} ."

Comment thread Jenkinsfile Outdated
Remove-Item -LiteralPath '${env.publishDirectory}' -Recurse -Force
}
New-Item -ItemType Directory -Path '${env.publishDirectory}' -Force | Out-Null
dotnet publish '.\\SEBrowser\\SEBrowser.csproj' `

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dotnet publish '.\\SEBrowser\\SEBrowser.csproj' `
dotnet publish '.\\PQBrowser\\PQBrowser.csproj' `

Comment thread Jenkinsfile Outdated
Comment on lines +228 to +231
'${env.publishDirectory}\\SEBrowser.exe',
'${env.publishDirectory}\\SEBrowser.dll',
'${env.publishDirectory}\\package.json',
'${env.publishDirectory}\\wwwroot\\Scripts\\SEBrowser.${env.uiVersion}.js'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'${env.publishDirectory}\\SEBrowser.exe',
'${env.publishDirectory}\\SEBrowser.dll',
'${env.publishDirectory}\\package.json',
'${env.publishDirectory}\\wwwroot\\Scripts\\SEBrowser.${env.uiVersion}.js'
'${env.publishDirectory}\\PQBrowser.exe',
'${env.publishDirectory}\\PQBrowser.dll',
'${env.publishDirectory}\\package.json',
'${env.publishDirectory}\\wwwroot\\Scripts\\PQBrowser.${env.uiVersion}.js'

Comment thread Jenkinsfile
Comment thread PQBrowser.dockerfile Outdated
# Copy PQBrowser from the local published folder to the container
COPY ./[Bb]uild/${CONFIGURATION}/Applications/PQBrowser/net9.0/publish/linux-x64/ /PQBrowser/

ENV ASPNETCORE_HTTP_PORTS=8001

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ENV ASPNETCORE_HTTP_PORTS=8001

Comment thread Jenkinsfile Outdated
Comment on lines +199 to +202
if (Test-Path -LiteralPath '${env.publishDirectory}') {
Remove-Item -LiteralPath '${env.publishDirectory}' -Recurse -Force
}
New-Item -ItemType Directory -Path '${env.publishDirectory}' -Force | Out-Null

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (Test-Path -LiteralPath '${env.publishDirectory}') {
Remove-Item -LiteralPath '${env.publishDirectory}' -Recurse -Force
}
New-Item -ItemType Directory -Path '${env.publishDirectory}' -Force | Out-Null

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we want to remove this?

Comment thread Jenkinsfile Outdated
New-Item -ItemType Directory -Path '${env.publishDirectory}' -Force | Out-Null
dotnet publish '.\\PQBrowser\\PQBrowser.csproj' `
'-p:PublishProfile=Release Profile PQBrowser' `
-o '${env.publishDirectory}'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
-o '${env.publishDirectory}'

that should be defined in profile

Comment thread Jenkinsfile Outdated
Comment on lines +19 to +20
publishDirectory = "${WORKSPACE}\\build\\Jenkins\\publish"
artifactDirectory = "${WORKSPACE}\\build\\Jenkins\\artifacts"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
publishDirectory = "${WORKSPACE}\\build\\Jenkins\\publish"
artifactDirectory = "${WORKSPACE}\\build\\Jenkins\\artifacts"

neither should matter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants