dalelane opened a new pull request, #28831:
URL: https://github.com/apache/flink/pull/28831

   ## What is the purpose of the change
   
   The nightly Azure pipeline publishes two things that the GitHub Actions 
nightly
   workflow currently doesn't: release binaries uploaded to S3, and snapshot 
jars
   deployed to repository.apache.org. That gap needs closing before Flink can 
move off
   Azure Pipelines (FLINK-27075).
   
   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 (keeping 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
   before they become the canonical source of anything we publish.
   
   `master` is deliberately listed in *both* of the lists described below, 
which is the
   first phase of the rollout proposed on FLINK-40248: GHA publishes master's 
binaries
   under a `gha-trial/` prefix while Azure continues to publish to the bucket 
root, so the
   two can be compared over a series of nightly runs before anything depends on 
GHA's
   output. 
   
   Removing master from the shadow list and removing Azure's 
`cron_snapshot_deployment` 
   job will be a follow-up, once the outputs have been confirmed to match.
   
   
   ## Brief change log
   
     - Adds `snapshot_binary` and `snapshot_maven` jobs to 
`.github/workflows/nightly.yml`,
       mirroring the `cron_snapshot_deployment_binary` and 
`cron_snapshot_deployment_maven`
       jobs in `tools/azure-pipelines/build-nightly-dist.yml`. Both run on JDK 
11, the
       minimum supported version, matching the Azure jobs.
     - `PUBLISH_SNAPSHOT_BRANCHES` lists branches whose snapshots this pipeline 
publishes.
       Because `nightly.yml` is versioned per branch, this is per-branch 
configuration, 
       and a branch that has the change backported without being added to the 
list defaults 
       closed: it builds, but publishes nothing.
     - `SHADOW_SNAPSHOT_BRANCHES` lists branches that GHA and Azure are both 
publishing
       during comparison. Binaries for those branches are uploaded to a 
`gha-trial/` prefix
       in the S3 bucket rather than the bucket root, so the two pipelines can't 
overwrite
       each other. Snapshot jars uploaded to Maven need no equivalent renaming, 
as they 
       already have timestamped names.
     - The binary release is uploaded as a GHA build artifact on every branch, 
whether or
       not it publishes, so its contents can be compared against what Azure 
produces.
     - When a branch isn't publishing, the Maven job deploys into a local 
repository via
       `-DaltDeploymentRepository` and uploads that as a tarball artifact, 
instead of
       deploying to repository.apache.org.
     - `tools/ci/deploy_nightly_to_s3.sh`: `upload_to_s3` takes an optional 
destination
       prefix, defaulting to the existing behaviour of writing to the bucket 
root.
     - `tools/releasing/create_binary_release.sh`: adds `SKIP_PYTHON_WHEELS`, 
defaulting to
       `false` so the manual release process is unaffected. Nightly builds set 
it to
       `true`, so a binary release can be produced without the 12 platform 
wheels that a
       release manager downloads by hand beforehand. Also enables `nullglob` 
around the
       wheel loop, so it doesn't iterate over a literal `*.whl` when no wheels 
are present.
     - `tools/azure-pipelines/build-nightly-dist.yml`: sets 
`SKIP_PYTHON_WHEELS=true`, and
       now checks the exit code of `create_binary_release.sh`. Previously the 
nightly Azure
       build depended on the missing-wheels check failing, with that failure 
masked by the
       `echo`/`find` commands following it in the same inline script — which 
meant any
       other error in the script was silently ignored too.
   
   
   ## Verifying this change
   
   This change is a CI configuration change without test coverage. I'll verify 
by
   running affected pipelines on my fork. 
   
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: no
     - The serializers: no
     - The runtime per-record code paths (performance sensitive): no
     - Anything that affects deployment or recovery: JobManager (and its 
components),
       Checkpointing, Kubernetes/Yarn, ZooKeeper: no
     - The S3 file system connector: no 
   
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
     - If yes, how is the feature documented? not applicable
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes (please specify the tool below)
   
   Generated-by: Claude Sonnet 5
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to