Skip to content

Fix package publishing skipped on tagged builds - #9

Merged
HowardvanRooijen merged 1 commit into
mainfrom
features/fix-package-publish
Jul 23, 2026
Merged

Fix package publishing skipped on tagged builds#9
HowardvanRooijen merged 1 commit into
mainfrom
features/fix-package-publish

Conversation

@HowardvanRooijen

Copy link
Copy Markdown
Contributor

Problem

The endjin CI pipeline's publish phase is being skipped on tagged builds, so packages are not published. The newest Ais.Net.Models on NuGet is 0.3.10.3.2 and 1.0.0 were both tagged but never published.

Root cause (in the @main shared pipeline):

# publish
needs: [compile, test, package, postCompile]
if: inputs.forcePublish || startsWith(github.ref, 'refs/tags/')   # true on a tag

# postCompile
if: inputs.postCompilePhaseTasks != ''                            # unset here → SKIPPED

publish needs postCompile; postCompile only runs when postCompilePhaseTasks is set. With it unset, postCompile is skipped, and because publish's if doesn't use always(), GitHub cascades the skip — publish is skipped even though the tag condition is true.

Fix

Point postCompilePhaseTasks at a no-op InvokeBuild task (NoOp, added to .zf/config.ps1) so the post-compile phase runs and no longer blocks publish. The task does no work; the post-compile cache it emits is not consumed by any later phase.

Verifying

On this PR's build, the Post-Compile job should now run (previously skipped). Publish still won't run on the PR build itself (it's release-gated to tags), but with post-compile no longer skipped, a future tagged release will publish.

Follow-up (separate): 1.0.0 is already tagged but unpublished. After this merges, publishing 1.0.0 needs either a re-tag on a commit that includes this fix, a new patch release, or a one-off manual dotnet nuget push.

🤖 Generated with Claude Code

The endjin pipeline's publish phase has `needs: postCompile`, and the post-compile
phase only runs when postCompilePhaseTasks is set (`if: inputs.postCompilePhaseTasks
!= ''`). With that input unset, the post-compile phase is skipped, which cascades to
skip the publish phase on tagged builds (publish's `if` does not use always(), so a
skipped `needs` job skips it). This silently stopped package publishing: the newest
version on NuGet is 0.3.1, while 0.3.2 and 1.0.0 were tagged but never published.

Point postCompilePhaseTasks at a no-op InvokeBuild task (NoOp, added to .zf/config.ps1)
so the post-compile phase runs and the publish phase is no longer skipped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q3BkmohCNRYGY1RBKbNaCx
Copilot AI review requested due to automatic review settings July 23, 2026 14:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a GitHub Actions workflow dependency issue where the reusable pipeline’s publish job can be skipped on tagged builds because it needs: postCompile and postCompile was previously skipped when no post-compile tasks were configured.

Changes:

  • Add a no-op InvokeBuild task (NoOp) to the ZeroFailed/InvokeBuild config so the post-compile phase has something to run.
  • Configure the build workflow to pass postCompilePhaseTasks: 'NoOp' into the shared Endjin reusable pipeline, ensuring postCompile no longer blocks publish on tags.
  • Document the rationale inline in both the build config and workflow file.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.zf/config.ps1 Adds a NoOp InvokeBuild task to allow the post-compile phase to run without doing work.
.github/workflows/build.yml Sets postCompilePhaseTasks for the shared pipeline so postCompile runs and won’t cascade-skip publish on tagged builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +64 to +68
# The pipeline's publish phase has `needs: postCompile`, and the post-compile phase only runs
# when postCompilePhaseTasks is set. With it unset the post-compile phase is skipped, which
# cascades to skip publish on tagged builds (publish's `if` does not use always()). Point it at
# a no-op task (defined in .zf/config.ps1) so the phase runs and publish is not skipped.
postCompilePhaseTasks: 'NoOp'
@github-actions

Copy link
Copy Markdown

Test Results

245 tests  ±0   245 ✅ ±0   0s ⏱️ ±0s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit 08cdd8a. ± Comparison against base commit f996330.

@HowardvanRooijen
HowardvanRooijen merged commit 55fd588 into main Jul 23, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants