-
Notifications
You must be signed in to change notification settings - Fork 33
CP-13653 linux-pkg: disable windows-connector's post-push auto-trigger, require manual trigger to publish #416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
vimleshmishra
wants to merge
1
commit into
develop
Choose a base branch
from
dlpx/pr/vimleshmishra/0ca1958f-2337-4dda-b9a7-86594d41bd00
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| # windows-connector: manual build/publish process | ||
|
|
||
| Unlike most linux-pkg packages, `windows-connector`'s `post-push` Jenkins job does | ||
| **not** auto-trigger on every push to `dlpx-app-gate`. It must be triggered manually. | ||
|
|
||
| ## Why | ||
|
|
||
| `windows-connector` changes are infrequent, and the connector source lives in | ||
| `dlpx-app-gate` (a repo with heavy, unrelated traffic) rather than in `linux-pkg` | ||
| itself. Auto-triggering on every push meant most builds were pure rebuild churn | ||
| with no source change, and any real build-health regression showed up | ||
| indistinguishably from that noise. Rather than add machinery to tell the two | ||
| apart, the trigger is removed and a human decides when to build and publish. | ||
|
|
||
| ## How the trigger is disabled | ||
|
|
||
| `config.sh` sets: | ||
|
|
||
| ```bash | ||
| DEFAULT_PACKAGE_GIT_URL="none" | ||
| ``` | ||
|
|
||
| This is read by the shared Job DSL (`devops-gate/jenkins/jobs/linux_pkg_build_package.groovy`) | ||
| to disable `post-push`'s push trigger — no devops-gate change was needed for this. | ||
| The job's own auto-generated description reflects it: "Triggers are disabled for | ||
| this job, so it must be run manually." | ||
|
|
||
| Source is still fetched from the real `dlpx-app-gate` repo. Since | ||
| `DEFAULT_PACKAGE_GIT_URL="none"` would otherwise make `PACKAGE_GIT_URL` resolve | ||
| to `"none"` too, `config.sh` overrides the `fetch()` hook to hardcode the real | ||
| URL directly instead of relying on that variable: | ||
|
|
||
| ```bash | ||
| function fetch() { | ||
| PACKAGE_GIT_URL="https://github.com/delphix/dlpx-app-gate.git" | ||
| logmust fetch_repo_from_git | ||
| } | ||
| ``` | ||
|
|
||
| ## Making a connector change and bumping the version | ||
|
|
||
| 1. Make your change under `appliance/server/connector` or | ||
| `appliance/host/windows` in `dlpx-app-gate`. | ||
| 2. Bump `project.ext.connectorDebVersion` in | ||
| `appliance/host/windows/build.gradle` — this is the deb packaging version, | ||
| independent of `connectorVersion` (bumped once per release). | ||
| 3. Merge your `dlpx-app-gate` PR to `develop`. | ||
|
|
||
| ## Testing before merging to develop | ||
|
|
||
| Use `git-ab-pre-push -b windows-connector` from your local `dlpx-app-gate` | ||
| checkout. It builds the package (including uncommitted local changes, via an | ||
| auto-snapshotted throwaway branch) and chains through combine-packages, | ||
| appliance-build, and integration tests — entirely isolated to | ||
| `dev-de-images`/`pre-push`-scoped paths. It never touches production | ||
| `snapshot-de-images`/`post-push`/`latest`. | ||
|
|
||
| ## Publishing a new `latest` after merging | ||
|
|
||
| Once your change is merged to `develop`, manually trigger the real `post-push` | ||
| job so the new artifact gets published to develop's `latest`: | ||
|
|
||
| `linux-pkg/develop/build-package/windows-connector/post-push` — click **Build Now**. | ||
|
|
||
| ## Known caveat | ||
|
|
||
| `GIT_HASH`/`BUILD_INFO` published alongside the artifact reflect the commit at | ||
| the time of the last *real* build, not necessarily current `develop` HEAD — | ||
| this is true regardless of whether a build was triggered automatically or | ||
| manually, and is a pre-existing limitation, not something this change | ||
| introduces. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I agree with the framing that this is a "caveat".. I view this as a feature, and working as intended..
I'm OK leaving it, just makes it seem like this is a defect, when it's actually the whole point of capturing that information at build time.. so we can map the package contents, to the source code that was used to generate it..
which, by design, will lag the app-gate develop branch for this package..