Remove old publish workflow and clean up the Rakefile#60
Merged
Conversation
ivoanjo
previously approved these changes
Jun 17, 2026
Publishing is handled by the publish job in the reusable build workflow (build.yml), which builds, validates and pushes the gems in one place. The separate workflow_dispatch-only publish.yml is redundant.
Add a synthetic terminal job that depends on the validate-* jobs so the non-conditional part of the Build workflow has a single completion node. It deliberately excludes the publish job, which is conditional (push to main only) and would otherwise make this job skip on pull requests.
Add the reusable build workflow to Main (complete)'s dependencies so the overall Main status reflects Build (complete) as well as test and nix.
Drop the Rakefile flow that downloaded pre-built libdatadog release tarballs from GitHub (fetch/extract) and packaged gems from them (package), along with its LIB_GITHUB_RELEASES table, the LIB_VERSION_TO_PACKAGE guard, the spec_validate_permissions task and its spec/gem_packaging.rb. Building from source (rake libdatadog:build) and packaging (rake gem:package) in tasks/ supersede this path; the test workflow's extract/package steps and the README are updated accordingly. Helpers.fix_file_permissions is kept (still used by libdatadog:build).
Reduce the Rakefile to glue that loads tasks/*.rake, and split the remaining tasks into one file per logical unit: - tasks/spec.rake: spec + standard + the default task - tasks/release.rake: push_to_rubygems and the build/release overrides Move Helpers.fix_file_permissions into tasks/build.rake (its only consumer) as BuildFromSource::Permissions, removing the last shared Rakefile helper.
The Rakefile gem-packaging originals it referred to are gone; gem:package is now the sole packaging path, so the note no longer applies.
77c1b23 to
89f603a
Compare
ivoanjo
approved these changes
Jun 22, 2026
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.
Why?
Now that gems are built from source and published by the reusable build workflow (
build.yml), the standalonepublish.ymlworkflow and the Rakefile flow that packaged gems from pre-built upstream binary artifacts are dead weight. The Rakefile andtasks/had also drifted into duplicating each other during the migration.What does this PR do?
CI:
publish.yml(publishing lives inbuild.yml's publish job).Build (complete)aggregation job that depends on thevalidate-*jobs (intentionally not the conditionalpublish, which is skipped on PRs).Main (complete)depend on the reusablebuildworkflow.Rakefile / tasks:
fetch/extract/package,LIB_GITHUB_RELEASES, theLIB_VERSION_TO_PACKAGEguard,spec_validate_permissions+spec/gem_packaging.rb). Building from source (rake libdatadog:build) +rake gem:packagesupersede this path;test.ymland the README are updated accordingly.Rakefileto glue that loadstasks/*.rake, and splits the remaining tasks one logical unit per file:tasks/spec.rake(spec/standard/default) andtasks/release.rake(push/build/release overrides).fix_file_permissionsmoves intotasks/build.rake(its only consumer).tasks/gem.rake.Change log entry
None.
Additional Notes:
bundle exec rake -ATloads the full task graph;standardpasses on all changed Ruby files.Build (complete)run when the conditionalBuild / Publishis skipped but fail when any earlier job failed? Withneeds: [validate-linux, validate-macos]and noif:, it already does exactly that (runs iff both validations pass, independent of the skippedpublish).How to test the change?
CI. Locally:
bundle exec rake -ATlists the tasks;bundle exec rake libdatadog:build && bundle exec rake gem:packagebuilds gems;bundle exec rake gem:validatechecks permissions.