bcgov / range-web

The Range Mobile Pathfinder project is developing a suite of applications to support the sustainable management of cattle range on crown lands in British Columbia.
https://myrangebc.gov.bc.ca
Apache License 2.0
9 stars 11 forks source link

GHA PR Based Pipeline #673

Open micheal-w-wells opened 4 years ago

micheal-w-wells commented 4 years ago

Between @calebissharp and myself to work on a pr based pipeline using GHA.

The skinny for @ZoeSimon and @LisaMoore1 is this means we can get individual fixes out sooner rather than big bang releases. We can do it now in really sticky situations (and no problem at all for synch job), but it's not very streamlined for the web app or api yet.

I'm making this issue so that it's known to you two that we can switch to what is called a PR based pipeline, which means the test environment looks just like the code in an individual PR, vs everything in the dev branch (what we do now). Doesn't have to be this sprint, but @calebissharp and I might want to look at how much work it would be as getting hotfixes out is important, and we wouldn't get into release limbo as much.

I've set up a jenkins based one for Invasives so I know how it works, but we would be using github actions as jenkins is on its way out and comes with his own suite of issues. @calebissharp had suggested another platform, however NRM and platform services wants teams to steer clear from test environments that aren't openshift like production, so we're going with openshift + github.

@calebissharp @ZoeSimon we should work out what's TODO for this one once we size it all Lisa can decide if it's something we do before the next big round of features/releases (but after this release) or if it waits till later.

calebissharp commented 4 years ago

@micheal-w-wells This means we'll have multiple deployments, correct? For example, if you had 5 PRs open, you'd have 5 different URLs where you could see the isolated changes. I just want to make sure we're on the same page.

micheal-w-wells commented 4 years ago

@calebissharp yep

micheal-w-wells commented 4 years ago

Gist of what is needed to enhance the current solution:

Right now we use a set of standing deployment configs that subscribe to image changes, and from github we trigger the build and then tag it and we're done.

What is needed to make this a 'truly' PR based approach (not one that just fires on a PR like ours) is to:

Other notes:

@fwpushan have a look at this, it's likely identical to what you are trying to do for InvBC