-
Notifications
You must be signed in to change notification settings - Fork 17
Enable Azure pipeline build & release for UI #2
Comments
We use azure pipelines for the egeria builds. Azure pipelines has support for an npm task to assist in building the javascript apps. More details at https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/javascript?view=azure-devops&tabs=code The basic tasks to invoke a build should be pretty simple - and we can launch this in various ways. for example for base egeria we do this on a PR (to verify it) and also after a merge. So we need to think if they are both the same, or if we want any differences such as running different tests. Most likely not. I don't see any compelling reason to add maven/gradle if we're only building a single component That first part should be easy. We also have to decide how to distribute the artifacts. For base egeria we have maven artifacts. For a PR build we do not publish these artifacts anywhere (technically they are saved, so we could look at them, but it's pretty hidden in azure) For a merge build we publish to artifactory, as a snapshot release to a egeria-snapshot repo When we RELEASE we have a seperate pipeline which currently does a full rebuild, and then publishes to a staging repository. Once complete we promote those artifacts to egeria-release, and then sync these with bintray, and onwards to maven central. The staging approach has merits, though there are still deficiencies in our implementation of that process. For another example we could look at what we do for docker. There the merge build publishes DIRECTLY to docker hub. There is no PR build (but there is an issue open to create one, to aid in testing). The container image version matches the maven version is 2.4-SNAPSHOT .. then 2.4 when near released. Imperfect but good enough As part of the above, the ODPi support team manage credentials for dockerhub and artifactory - and in the latter case artifacts are signed automatically. We also have other options including publishing to Azure or github repos but haven't done this before. Or we could just store as a local build artifact & pick it up in the egeria build (we just need to know it's identity) though this feels a little closely coupled? So it seems to me we can
@sarbull It would be useful tomorrow to understand what the new artifact is, how it's consumed, and how you see versioning work. We can then discuss the release process. I can show you what we have for egeria base. If it makes sense we can probably set you up with access to building the pipeline. Part 2 -- which we should open up an issue on core egeria If we need a static content server, then we need to ensure we explain this in the docs & release notes (as it's a big change), and consider if we want to add a new Docker container. We already have one for presentation server, so this will be similar, and the build process is in place. We'll also likely need to create a new maven assembly with the content required for the container. In all cases the docs need updating for the developer & end user After we discuss I'll try and update this issue with a more precise breakdown of tasks - the above is a bit of a quick braindump to hit on a few topics we should discuss |
Summary from webconf discussion
|
Signed-off-by: Nigel Jones <nigel.l.jones+git@gmail.com>
Thanks @sarbull for the first pipeline definition. I've set these up in azure pipelines, so from now on you should just be able to edit the yaml. The builds are under a new folder 'Egeria UI' - I also added a PR in addition to merge, and moved to .azure-pipelines to avoid confusion the real source with build instructions (same as egeria) You may want to think about:
Suggest we close this once we're happy with the basics... Nigel. |
Egeria UI builds -> https://dev.azure.com/ODPi/Egeria/_build?definitionScope=%5CEgeria%20UI |
Signed-off-by: Nigel Jones <nigel.l.jones+git@gmail.com>
#2 Add quick info about builds -- to test PR trigger and check
we also need to have a release button in azure, that runs the release cycle [0] and pushes to the master branch. |
I created an empty job at https://dev.azure.com/ODPi/Egeria/_release?_a=releases&view=mine&definitionId=11 if you'd like to experiment? Hopefully you have all the necessary pipelines to work on the release. Annoyingly these pipelines are GUI based - and NOT checked in to git. You can also use the build pipelines to do something similar (we can easily register a new one of those if you check in). I suggest taking a look to figure out what works for the UI? Happy to answer any questions (I'll be away wed/thu) |
Azure builds are working for PR and merging. In egeria base we have migrated PR builds to github actions. will raise issue to discuss |
Before we can have this component as a dependency of the main egeria code base we need an Azure build pipeline
The build process needn't use maven, or be version synchronized to egeria, but it must be possible to build PRs, merge builds, and establish a build pipline
The text was updated successfully, but these errors were encountered: