Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create build for jenkinsci/winp on release ci server #4469

Open
slide opened this issue Dec 30, 2024 · 9 comments
Open

Create build for jenkinsci/winp on release ci server #4469

slide opened this issue Dec 30, 2024 · 9 comments

Comments

@slide
Copy link

slide commented Dec 30, 2024

Service(s)

release.ci.jenkins.io

Summary

In order to sign the DLL's that will be built as part of the WinP build, the build for releases will need to be done on release.ci.jenkins.io which has access to the code signing cert (also used in the MSI code signing during weekly/LTS releases).

The build setup on the release server should publish the maven artifacts after the build is complete. The signing env should be setup the same was as is setup for the MSI build (the names of the env variables, etc).

We would want to disable publishing of Maven artifacts from the ci.jenkins.io CI path as well. Not sure if that is possible right now.

cc: @MarkEWaite @oleg-nenashev

Reproduction steps

No response

@slide slide added the triage Incoming issues that need review label Dec 30, 2024
@dduportal dduportal added this to the infra-team-sync-2025-01-07 milestone Dec 31, 2024
@dduportal dduportal removed the triage Incoming issues that need review label Jan 7, 2025
@timja
Copy link
Member

timja commented Jan 7, 2025

This is fine with me.

The pod template used for Jenkins core is:
https://github.com/jenkins-infra/release/blob/master/PodTemplates.d/package-windows.yaml

I'd suggest something like that gets added to the winp repository and another Jenkinsfile something like:
Jenkinsfile_release

Then it will need adding to release.ci here:
https://github.com/jenkins-infra/kubernetes-management/blob/main/config/jenkins_release.ci.jenkins.io.yaml#L288

@dduportal
Copy link
Contributor

cc @timja as release lead: I'm ok with this on the infra side, but I want a second point of view.

In term of implementation on infra side, we'll need to:

  • Add Linux Agent template identical to ci.jenkins.io
  • Add a job in release.ci.jenkins.io (JobDSL)
  • Run a first build setup without publication but with signing to verify everything looks good
  • Work on the deployment part

Note: the security of this job will be vital:

  • No PR build at all
  • No GitHub checks or any kind of feedback notification

@dduportal
Copy link
Contributor

@slide what is the expected release process?

  • Triggered by a tag pushed on the system?
  • Schedule based (like Jenkins)?
  • A human trigger the release build on release.ci on request ?
  • Other trigger ?

@dduportal
Copy link
Contributor

This is fine with me.

The pod template used for Jenkins core is: https://github.com/jenkins-infra/release/blob/master/PodTemplates.d/package-windows.yaml

I'd suggest something like that gets added to the winp repository and another Jenkinsfile something like: Jenkinsfile_release

Then it will need adding to release.ci here: https://github.com/jenkins-infra/kubernetes-management/blob/main/config/jenkins_release.ci.jenkins.io.yaml#L288

For the record, the Jenkins Infra team would prefer to use an Azure Windows VM rather than a Windows pod template:

  • Agent availability time is way better (2 to 5 min instead of 16 to 20 min)
  • Tooling would be exactly the same as ci.jenkins.io

@slide
Copy link
Author

slide commented Jan 7, 2025

I am not one of the main maintainers of WinP (right now), so I may need to defer to someone else in terms of when we should trigger the release. Let me do some digging on that.

@timja
Copy link
Member

timja commented Jan 7, 2025

no one is actively maintaining it as far as I know. people in jenkinsci/core have been rarely releasing it as required.

@slide
Copy link
Author

slide commented Jan 7, 2025

Ok, I'll request to become a maintainer for it then. Do you have a recommendation for a trigger? I don't think the component is changed frequently, so having a human based trigger would probably be fine?

@timja
Copy link
Member

timja commented Jan 7, 2025

Ok, I'll request to become a maintainer for it then. Do you have a recommendation for a trigger? I don't think the component is changed frequently, so having a human based trigger would probably be fine?

Simplest is probably on tag?

Nicest would be to run on main and create the tag if there's interesting changes.

@timja
Copy link
Member

timja commented Jan 7, 2025

See also @basil's suggestions in jenkinsci/winp#117

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

No branches or pull requests

3 participants