ci: migrate release pipeline from Jenkins to GitHub Actions - #2
Open
devin-ai-integration[bot] wants to merge 2 commits into
Open
ci: migrate release pipeline from Jenkins to GitHub Actions#2devin-ai-integration[bot] wants to merge 2 commits into
devin-ai-integration[bot] wants to merge 2 commits into
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR summary
Moves the whole build/release pipeline onto GitHub Actions and deletes the
Jenkinsfile(plus the now-unused.releasercandscripts/publish_buildinfo.sh).Release flow after this change:
Jenkins stages that could not be ported (they depend on IBM-internal infrastructure not reachable from GitHub-hosted runners) and are therefore dropped: Artifactory staging publish + build-info, the
sdks-gaugepipeline trigger, the Mend scan, and thedetectSecretsstage. The last one was attempted —detect-secrets-hookagainst the committed.secrets.baselinereports ~100 unaudited findings instubs/*.json, so the internal job clearly runs a different configuration and porting it as-is would have produced a permanently red job.scripts/pydoc/publish-doc.shnow reuses agh-pagesdirectory when one already exists (checked out by the workflow with the run's credentials) instead of always cloning, and takes its identity/tag from the environment.Fixes: n/a — CI-only change, no existing issue.
PR Checklist
Angular Commit Message Guidelines.
PR Type
What is the current behavior?
GitHub Actions runs tests and docs only; linting, SonarQube, versioning, tagging and all publishing live in the
Jenkinsfileand require Jenkins credentials (PyPI username/password, Artifactory).What is the new behavior?
testgains apylintjob (Actions builds never linted before), a packagingbuildjob (flit build+twine check --strict), coverage/junit artifacts,fail-fast: false, per-job least-privilegepermissions,timeout-minutesand PR-only concurrency cancellation.docsgets the same hardening.sonarqube,dependency-review,releaseandpublishworkflows.twineandbump-my-versionare pinned inrequirements-dev.txt(previously provided by the Jenkins agent image).Does this PR introduce a breaking change?
Other information
Repository setup required before the new scan/release workflows do anything:
ibmcloudant: owner/repo, workflowpublish.yml, environmentpypi; plus apypienvironment in repo settings.SONAR_TOKENandSONAR_HOST_URLsecrets. WithoutSONAR_HOST_URLthe scan step is skipped with a notice rather than failing, and the job never runs for fork PRs (no secret access). Likewisedependency-reviewprobes the dependency graph API and skips when the graph is disabled for the repository.releaseworkflow pushes tomain, so it needs a branch-protection bypass forgithub-actions[bot]if pushes tomainare restricted.Validated:
actionlintclean,pylint10.00/10, 684 unit tests pass locally,flit build --no-use-vcs+twine check --strictpass, and all 12 checks are green on this PR.Link to Devin session: https://app.devin.ai/sessions/a0876111a5a44b0eb8d24384f93fc2e8
Requested by: @eml2026