Dale Lane created FLINK-40248:
---------------------------------

             Summary: Move publishing nightly snapshots from AZP to GHA
                 Key: FLINK-40248
                 URL: https://issues.apache.org/jira/browse/FLINK-40248
             Project: Flink
          Issue Type: Sub-task
          Components: Build System / CI
            Reporter: Dale Lane


Today, the nightly scheduled Azure Pipelines pipeline:
1) uploads release binaries to S3
2) pushes snapshot jars to Maven

Before we could migrate fully off of AZP, we need an equivalent nightly 
scheduled job that does this from Github Actions. 

We'll do this in a phased way, one release branch at a time.

h3. Approach

Add the equivalent snapshot publishing to the GHA nightly workflow, covering 
both the binary release upload and the Maven snapshot deploy.

Which pipeline publishes a given branch will be configuration held in the GHA 
nightly workflow itself. 

Because that workflow is versioned per branch, each branch can be switched over 
independently, and a branch that hasn't been switched over yet still *builds* 
its snapshots on GHA (it just keeps them as build artifacts of the workflow run 
rather than publishing them). 

The aim of this is to make sure that the new GHA jobs get exercised on every 
branch well before they become the canonical source of anything we  publish.

The safety property we want throughout is that exactly one pipeline is 
publishing a given branch at any time. Two pipelines publishing the same branch 
would overwrite each other (neither publishing would arguably be worse, as a 
branch's snapshots would silently go stale). 

For each branch, enabling GHA and disabling AZP should be done together, as one 
reviewable change.

h3. Rollout

The first branch that we migrate should have an extra safety net step that 
let's us compare GHA's output against AZP's output on a few real nightly runs 
before anything is depending on GHA output. 

# *Both pipelines publish the branch.* GHA publishes to a separate location 
that nothing consumes, so it can't overwrite what AZP is publishing. We compare 
the two sets of output over a series of nightly runs to confirm parity.
# *Hand the branch over.* We make the switch described above, so GHA starts 
publishing to the real location and AZP stops publishing the branch. We then 
verify the published snapshots directly.
# *Migrate the remaining branches.* With the approach proven end to end, each 
subsequent branch is switched over in a single step - no shadow phase needed.

h3. Not in scope

I'm not talking about migrating the nightly *test* jobs here, or the manual 
release process. This is only about the nightly snapshot builds currently 
produced from AZP 


h3. Done when

This subtask will be complete once every active release branch publishes its 
nightly snapshots from GHA, and AZP no longer does. At that point, the  nightly 
snapshot deployment configuration can be deleted from the AZP pipeline



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to