Skip to content

Support publishing pre-release versions #2371

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

Merged
merged 6 commits into from
May 12, 2022

Conversation

CsCherrYY
Copy link
Contributor

@CsCherrYY CsCherrYY commented Mar 22, 2022

fix #2285

Notes:

  • For the trigger part, I'm not sure the current trigger of Jenkins pipeline since it's on the Jenkins server, I suppose we trigger this pipeline after there is a commit to the vscode-java or eclipse.jdt.ls repository, so in this PR I add a trigger in the scripted pipeline to nightly build when there is SCM changes, if we can merge the configuration with that in the current Jenkins server that would be fine. @rgrunber any comments?
  • Due to the requirement of pre-release channel (see Support publishing pre-release versions #2285 (comment)), a tool node 14.x should be added to the Jenkins server (in this PR it's nodejs-14.19.1) and we will use the newest version of vsce.
  • Validation: for the pre-release versions, the packaged vsix file has an 'extension.manifest' file in its root path, and in that file, we can find

<Property` Id="Microsoft.VisualStudio.Code.PreRelease" Value="true" />

Signed-off-by: Shi Chen [email protected]

@CsCherrYY
Copy link
Contributor Author

test this please

@rgrunber
Copy link
Member

The Jenkinsfile inherits from a parent definition that polls SCM every 2 minutes for a change. @fbricon brought up the fact that it makes more sense to do it nightly to avoid the case of potentially updating the insider build multiple times (and forcing multiple downloads) per day. I agree, and we can probably make that change.

@CsCherrYY
Copy link
Contributor Author

Sounds great. In this way, we will not make any SCM trigger change in this PR but it will happen on the server side, is that right? if so, I can remove this part then.

@CsCherrYY
Copy link
Contributor Author

@rgrunber I have removed the SCM trigger part in the Jenkins file.

For the node version and vsce version part, is there any gap in using node 14.x for publishing now?

@CsCherrYY CsCherrYY force-pushed the cs-pre-release-version branch from 499de68 to 96c356b Compare April 6, 2022 09:56
@CsCherrYY
Copy link
Contributor Author

CsCherrYY commented Apr 8, 2022

The newest commit I just separate the pre-release pipeline and keep the current builds work. All we should do in the Jenkins server are:

  • Create a new pipeline, and target this repository
  • Set the SCM trigger to daily build if new commit comes
  • Copy the environment variables and credentials from the existing pipeline, without publishToMarketPlace. Instead, create a new variable publishPreRelease and set it to true.

Signed-off-by: Shi Chen <[email protected]>
Copy link
Collaborator

@testforstephen testforstephen left a comment

Choose a reason for hiding this comment

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

LGTM

@testforstephen
Copy link
Collaborator

@rgrunber there are two follow-ups for you:

  • Install nodejs-14.19.1 in CI machine.

  • Create a new pipeline for pre-release, see more details from @CsCherrYY comment above.

    The newest commit I just separate the pre-release pipeline and keep the current builds work. All we should do in the Jenkins server are:

    • Create a new pipeline, and target this repository
    • Set the SCM trigger to daily build if new commit comes
    • Copy the environment variables and credentials from the existing pipeline, without publishToMarketPlace. Instead, create a new variable publishPreRelease and set it to true.

@CsCherrYY
Copy link
Contributor Author

@rgrunber Could you please verify this change in the Jenkins server? If there is anything I can help, feel free to reach out🙂

Copy link
Member

@rgrunber rgrunber left a comment

Choose a reason for hiding this comment

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

  • The build seems to work as expected with nodejs-14.19.1 🚀 . I can confirm presence of <Property Id="Microsoft.VisualStudio.Code.PreRelease" Value="true" />
  • I would also modify the ovsx@<0.3.0 reference to just ovsx . Same situation as vsce ( eclipse/openvsx@f5cc1a9 )
  • I just need to create a PR on our end to add publishPreRelease (default true) as a parameter & to see how we can modify the job so it runs daily.

Signed-off-by: Shi Chen <[email protected]>
Copy link
Member

@rgrunber rgrunber left a comment

Choose a reason for hiding this comment

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

Just one minor thing to fix, but overall, works.

  • I think you re-introduced the "ovsx@<0.3.0" line. Just make it "ovsx". With node 14 we don't need to restrict it.

Just as a note, the Jenkins job has been configured to use an scmpoll_spec of '0 8 * * *' so it will build once per day only if there are new changes. We can play with this later if necessary.

@CsCherrYY
Copy link
Contributor Author

CsCherrYY commented May 12, 2022

@rgrunber Sounds great! I have removed the version striction of ovsx. We can start to play with it.

@rgrunber rgrunber merged commit 20f66cc into redhat-developer:master May 12, 2022
@CsCherrYY CsCherrYY deleted the cs-pre-release-version branch May 25, 2022 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support publishing pre-release versions
3 participants