Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 14:05
· 21 commits to main since this release
69a1285

Released as a minor rather than a patch: this contains a source-breaking change - the ciWorkflowName setting provided by zio-sbt-ci is removed - and a change to when the generated ci job passes, which alters whether pull requests can merge. This repository has used minor bumps for breaking changes before, as in v0.6.0 removing the zio-sbt-gh-query module.

Upgrading

Four changes are visible to repositories using this plugin. Regenerate with sbt ciGenerateGithubWorkflow after upgrading and commit the result.

The ci job now fails instead of being skipped when a job it needs fails (#729).

This is the important one. ci is the aggregate job repositories point branch protection at. It declared needs on the lint, test and build jobs with no condition, so GitHub skipped it whenever one of them failed — and a skipped job is reported to branch protection as a success. The single required check therefore passed precisely when the jobs it guards had failed, and pull requests with red CI could merge. Two did so in this repository before it was found.

It now runs with if: always() and fails explicitly when any dependency reports failure or cancellation. Expect pull requests that previously merged with failing jobs to be blocked. That is the fix, but it will look like new failures.

ciWorkflowName provided by this plugin is now ciWorkflowTitle (#716).

It collided with zio-sbt-website's setting of the same name; with both plugins on the classpath, any reference to it failed to compile and the build would not load. Only one autoImport can expose the name, so the CI plugin gave it up. Builds setting it will get an unresolved reference and should rename. Builds setting it for the README badge want zio-sbt-website's key, which is unchanged.

timeout-minutes is now rendered (#716).

Job.timeoutMinutes was accepted and silently discarded. It is honoured when set to something other than its historical default of 30, and there is a new jobTimeout: Option[Int] alongside it. Builds that were already passing a value — zio-prelude passes 60 — will see it take effect for the first time.

The ci job's needs now uses real job ids (#725).

It previously mapped every test job to the literal string "test", so a build with more than one test job never waited on the others. Builds that add or rename test jobs will see ci correctly depend on them.

Also in this release

Six new capabilities: per-job timeout-minutes, a configurable workflow environment (ciWorkflowEnv), configurable workflow and per-job concurrency (ciConcurrency), options on service containers, configurable triggers (ciWorkflowTriggers), and a settings reference in the documentation.

The plugin also gained its first tests — thirteen golden fixtures pinning the generated YAML — and ciCheckGithubWorkflow no longer reports unrelated working-copy edits as workflow drift.

Changes

  • Pin the generator's actions to exact versions @khajavi (#734)
  • Hold sbt on 1.x in Renovate until the sbt 2 migration lands @khajavi (#733)
  • Enable the Renovate dashboard, and skip test-fixture workflows @khajavi (#732)
  • chore(deps): bump scala-steward-org/scala-steward-action from 2.92.0 to 2.95.0 @dependabot[bot] (#731)
  • Let Renovate manage the action versions in V.scala @khajavi (#730)
  • Make the ci gate fail instead of skip when a job fails @khajavi (#729)
  • Revert "Update sbt to 2.0.6" — main cannot load @khajavi (#728)
  • Update snakeyaml-engine to 3.1.1 @zio-scala-steward[bot] (#727)
  • Update sbt to 2.0.6 @zio-scala-steward[bot] (#726)
  • Use real job ids in the ci gate, and honour ciTargetJavaVersions @khajavi (#725)
  • Fix main: stale golden after #721, and setup-node pin out of sync after #694 @khajavi (#724)
  • Make the workflow's triggers configurable @khajavi (#722)
  • chore(deps): bump actions/setup-node from 6 to 7 @dependabot[bot] (#694)
  • fix(ci): supply base for create-pull-request in updateReadmeJobs @khajavi (#721)
  • Write workflows relative to the build, and slugify the file name @khajavi (#720)
  • Document the CI plugin's settings and customization @khajavi (#719)
  • Scope the workflow drift check to the workflow files @khajavi (#718)
  • Make the generated workflow expressive enough for real CI pipelines @khajavi (#716)
  • Update sbt, scripted-plugin to 1.12.15 @zio-scala-steward[bot] (#717)
  • fix(website): use resolutions instead of overrides to pin webpack version @khajavi (#715)
  • fix(ci): publish snapshots on pushes to enabled branches by default @khajavi (#714)
  • fix: run scripted tests on CI and survive project load without git @khajavi (#711)
  • fix: pass --markdown-extensions to mdoc as repeated flags @khajavi (#712)
  • fix: point javadoc badge at the published artifact coordinate @khajavi (#713)
  • fix: point Sonatype badges at Maven Central / Central Portal @khajavi (#710)
  • chore: add website sources and ignore generated docs output @khajavi (#705)
  • fix: support docs/index.mdx in generateReadme and website badge substitution @khajavi (#707)