Repository navigation
ci(dependabot): added Dependabot auto-merge caller workflow - #16
Merged
Merged
Conversation
Dependabot opens weekly NuGet update PRs here, and dotnet-release.yml already builds, tests and packs each of them on the PR, but no caller of the shared docker-maintenance-dependabot.yml module existed - every PR waited for a manual decision without any annotation. * New .github/workflows/dependabot-maintenance.yml, modelled on the own-build-and-test-workflow.yml example of automation-templates * No paths filter: every Dependabot PR, whatever its ecosystem, gets an explicit decision (merged, or left open with a notice) * required-workflows: .github/workflows/dotnet-release.yml - its PR paths already cover every file the NuGet updater writes here (Directory.Packages.props, src/** and tests/** csproj), so that workflow is left unchanged * Patch updates only, squash merge, auto-approve, secrets: inherit; contents/pull-requests write, checks/statuses/actions read * GitHub Actions updates and other .github/ changes stay manual by the module's own guard
|
🎉 This PR is included in version 2.2.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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
Dependabot opens weekly NuGet update PRs here (#10, #13 and #15 are open right now), and
dotnet-release.ymlalready builds, tests and packs each of them on the PR. But the repository had no caller of the shareddocker-maintenance-dependabot.ymlworkflow, so nothing decided on them: every PR waited for a manual merge, and nothing recorded which ones were safe to merge.What
New
.github/workflows/dependabot-maintenance.yml, which callsbauer-group/automation-templates/.github/workflows/docker-maintenance-dependabot.yml@main(based on theown-build-and-test-workflow.ymlexample):paths:filter. Every Dependabot PR reaches the module, whatever its ecosystem, and gets an explicit decision: it is either merged or left open with an annotation and a job summary.types: [opened, synchronize, reopened, ready_for_review].required-workflows: .github/workflows/dotnet-release.yml. Itspull_requestrun buildsBAUERGROUP.Shared.Business.Models.slnx, runs the tests (🔨 Build & Test) and packs the libraries with package validation (📋 Validate Package (PR)). That run must concludesuccess.dotnet-release.ymlis unchanged. Its PRpaths:(src/**,tests/**,*.slnx,Directory.Build.props,Directory.Packages.props) already cover every file the NuGet updater changes in this repository. The repository uses central package management, so Dependabot writesDirectory.Packages.props, or aVersionOverridein a csproj undersrc/ortests/. All 15 Dependabot PRs so far touched onlyDirectory.Packages.props, and every one of them started the release workflow. There is nopackages.lock.jsonordotnet-tools.json,global.jsonhas nomsbuild-sdks, and Dependabot never writesnuget.config.merge-update-types: patch,merge-method: squash,auto-approve: true,secrets: inherit.contents: write,pull-requests: write,checks: read,statuses: read,actions: read.Compatibility
dotnet-release.ymlbuilt, tested and packed successfully is merged automatically. Minor and major updates stay open for review. Under the 0.x rule a 0.y.z minor or a 0.0.z patch counts as major, and in a grouped update the strictest dependency decides..github/, are never merged automatically (the module's own guard). They get a notice and stay open for a manual merge.deps(dotnet)..github/config/release/semantic-release.jsonsets noreleaseRules, so the default rules (feat/fix/perf/revert/refactor) apply and a merged update cuts no NuGet release on its own; it ships with the next feat/fix release. The prefix is left unchanged on purpose. The merge is made withGITHUB_TOKEN, which starts no push workflow anyway..github/. The release workflow's push trigger ignores.github/**, so merging this PR cuts no release.Known blocker, not changed here:
📋 Validate Package (PR)fails on every PREvery
pull_requestrun ofdotnet-release.ymlso far concludedfailure(26 runs since 14 June, all from Dependabot). Five failed in🔨 Build & Test(real build or test breaks of the update, e.g. #15). The other 21 passed🔨 Build & Testand failed in📋 Validate Package (PR) / 🏗️ Build & Pack; in the 10 most recent of them (since 19 July) the cause below is in the log (older logs show an earlier, since-fixed version extraction error or are no longer readable), e.g. run 37183456654 on #13 and run 37183332830 on #10. Thepr-validatejob packs unsigned: it sets nosign-assembly, andDOTNET_SIGNKEY_BASE64is not available to Dependabot PRs anyway ("Assembly signing disabled (no signing key available)"). Package validation then compares against the signed 2.0.0 baseline (PackageValidationBaselineVersioninDirectory.Build.props) and fails withCP0003("assembly public key token '9abfc39dbb2dd76a' does not match ... 'null'"), 15 times per run.Until that is fixed, this caller merges nothing: every NuGet PR stays open with "CI did not pass", which is the safe outcome. Fixing it is a separate decision with trade-offs:
DOTNET_SIGNKEY_BASE64as a Dependabot secret, setsign-assembly: trueonpr-validate). The key is then exposed to the build of third-party package updates.PackageValidationBaselineVersionconditional on the key file existing). The compatible-framework check still runs, and the release build (signed) keeps the full baseline check.CP0003for the unsigned-vs-signed case inCompatibilitySuppressions.xml.Test
workflow_callinterface onautomation-templates@main.dotnet-release.ymldoes not run here, because this PR changes only.github/. The first Dependabot PR that is opened, reopened or rebased after the merge exercises the full decision path.