#722  Manual releases?
Closed
wojtek opened 2 years ago

Is there a way to manually create that would be associated with certain tag in the repository? Or just completely "free form" release? I'm aware that one can create a Release build (as per https://code.onedev.io/projects/160/issues/580) but having more liberty / being able to generate artifacts manually would be helpful.

What's more, currently there is no way to include any comment/release notes if we are only using Builds

Robin Shen commented 2 years ago

OneDev tried to get things automated as much as possible. In case of releasing from certain tag, you may create a release job, set up the job to pull artifacts from appropriate place, and get it published. You can also pull comment/release notes from other places and get it published as markdown.

Then you can run this job from tags page for specific tag.

Robin Shen changed state to 'Closed' 2 years ago
Previous Value Current Value
Open
Closed
Robin Shen commented 2 years ago

With build #2688 it is now possible to upload artifacts manually to a build, as well as editing the build description to put any information you want.

wojtek commented 2 years ago

Hmm, this build doesn't exist. I assume, considering the number, the feature would be available in version 7.2.x?

Robin Shen commented 2 years ago

That version was deleted due to an upgrade bug. Use latest build #2712 instead.

wojtek commented 2 years ago

One more question: while I understand motivation to use automatic approach, how can we handle older releases (we would like to migrate them from GitHub)?

I think that having dedicated section with releases that are more akin to github's/gitlab's (see https://gitlab.com/inkscape/inkscape/-/releases) would still be beneficial. It still links to tags in the repository but gives more freedom.

What's more, I imagine it could be somewhat also based on the current CI Build section and have "promote build to release" option which would create a release page from given build based on the information from that build (artifacts, manual changelog, etc) but with better layout (more familiar "release page" feel) and ability to manually create such releases as well.

Robin Shen commented 2 years ago

Unfortunately old releases will not be migrated.

The custom dashboard in future version will have the ability to add gadget to show builds of particular jobs. With this you will be able to define a "release" gadget to show release builds. This will serve as release section in GitHub/GitLab but much flexible.

Also you may manually create releases by running desired job against desired tag.

wojtek commented 2 years ago

This sounds promising - do you have an issue / rough idea when this dashboard feature is planned (so I could track that issue)?

Robin Shen commented 2 years ago
wojtek commented 2 years ago

Thank you.

Artur commented 2 years ago

Promoting a build to a release would be actually very useful. Normal builds are more like dev builds or beta versions. Successful build only means that the code is compilable. Then after tests, QA and so on, we could decide that a build is good enough for a public, production system. Dashboard page with gadgets sounds nice but I think a simplified "Releases" page, similar to "Builds" would be extremely valuable. Tigase is willing to sponsor implementation of such page/list.

Robin Shen commented 2 years ago

OneDev is flexible that you can define a normal job, and a release job. The release job can depend on normal job to retrieve tested/verified artifacts. Then you can promote normal build to release build.

As to separate release page, I'd rather leave it to be handled by user via gadgets, which is the most flexible and powerful way. For instance, besides release, you may also have a gadget displaying QA builds for dashboards presenting to QA users.

Artur commented 2 years ago

Ok, I am waiting then for the gadgets implementation to see how it works and if it covers what we need. If not we can come back to the discussion. Thank you.

wojtek commented 2 years ago

@robin

Also you may manually create releases by running desired job against desired tag.

how can one do that? I don't see any option on the list of tags/commits. I tried to add commit parameter to job but such job can be saved with enigmatic error: "Error validating job parameters (item: #1, error message: Missing job parameter (commit))". Please advise.

Robin Shen commented 2 years ago

I mean to define a job, say release to execute any logic you want to include in a manual release (build something, publish artifact etc), then you can trigger release job on desired tags.

However this only works for tags created after defining the release job.

wojtek commented 2 years ago

OK, in that case circling back to previous question/suggestion - would it be possible to add something similar to manual releases for particular tags? Possibly our use-case is somewhat specific but we can't quite rely on automatic releases based on builds/jobs - apart from previous releases we still have to build those manually as we are signing our binaries with certificate thus, for security purposes, we have to build them on local machines.

Robin Shen commented 2 years ago

In this case you can:

  1. Run a build agains the tag (you can do nothing in the job) to have OneDev generate a build object
  2. Upload you manually built files to artifacts area of the build, as well as editing description of the build to include anything you want
wojtek commented 2 years ago

OK, but this applies only to newer tags.

I wasn't specific - "would it be possible to add something similar to manual releases for particular OLDER tags"? I'm aware that we can run builds and have (filtered) Releases for newer tags and this works fine enough but the previous releases would be missed.

Robin Shen commented 2 years ago

Unfortunately creating builds for old tags are not supported.

issue 1 of 1
Type
New Feature
Priority
Normal
Assignee
Issue Votes (0)
Watchers (5)
Reference
onedev/server#722
Please wait...
Page is in error, reload to recover