From 96ce5198fc84173d79391bddfc82cf9794dd0e15 Mon Sep 17 00:00:00 2001 From: sshevchenko Date: Fri, 7 Aug 2026 20:32:39 +0200 Subject: [PATCH 1/4] Add Scala starter workflows --- README.md | 11 +++++++++++ workflow-templates/scala-ci.properties.json | 7 +++++++ workflow-templates/scala-ci.yml | 11 +++++++++++ workflow-templates/scala-release.properties.json | 7 +++++++ workflow-templates/scala-release.yml | 11 +++++++++++ 5 files changed, 47 insertions(+) create mode 100644 workflow-templates/scala-ci.properties.json create mode 100644 workflow-templates/scala-ci.yml create mode 100644 workflow-templates/scala-release.properties.json create mode 100644 workflow-templates/scala-release.yml diff --git a/README.md b/README.md index 8a934c2..3ddc4cf 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,21 @@ apply to every repository in the organization that does not define its own. | [AI_POLICY.md](AI_POLICY.md) | AI Contribution Policy — AI may assist, a human owns every commit. | | [CONTRIBUTING.md](CONTRIBUTING.md) | Default contributing guide, shown when opening issues and pull requests. | | [.github/workflows/human-commit-ownership.yml](.github/workflows/human-commit-ownership.yml) | "AI Policy Check" — fails a pull request whose commits list an AI tool as author or co-author. | +| [workflow-templates/](workflow-templates) | Starter workflows offered when adding a workflow to a repository. | GitHub picks up `CONTRIBUTING.md` automatically for repositories without their own copy. Workflows are not inherited: copy `human-commit-ownership.yml` into a repository to enable the check there. +## Starter workflows for Scala projects + +`workflow-templates/` adds **Scala CI** and **Scala Release** to the "New workflow" picker for any +repository in the organization with a `build.sbt`. Both are thin callers of the shared workflows in +[scala-github-actions](https://github.com/evolution-gaming/scala-github-actions), which is where the +inputs and behaviour are documented. + +These are offered, not enforced — a new repository can still skip them. To guarantee CI on every +repository, add the shared workflow to an organization ruleset the way the AI Policy Check does. + ## Enabling the AI Policy Check 1. Copy `.github/workflows/human-commit-ownership.yml` into the target repository. diff --git a/workflow-templates/scala-ci.properties.json b/workflow-templates/scala-ci.properties.json new file mode 100644 index 0000000..8a3d13d --- /dev/null +++ b/workflow-templates/scala-ci.properties.json @@ -0,0 +1,7 @@ +{ + "name": "Scala CI", + "description": "Test, coverage, binary compatibility and formatting for a Scala project, via the shared Evolution workflow.", + "iconName": "example", + "categories": ["Scala", "Continuous integration"], + "filePatterns": ["build.sbt$"] +} diff --git a/workflow-templates/scala-ci.yml b/workflow-templates/scala-ci.yml new file mode 100644 index 0000000..045453f --- /dev/null +++ b/workflow-templates/scala-ci.yml @@ -0,0 +1,11 @@ +name: CI + +on: + push: + branches: [ $default-branch ] + pull_request: + +jobs: + test: + uses: evolution-gaming/scala-github-actions/.github/workflows/ci.yml@v6 + secrets: inherit diff --git a/workflow-templates/scala-release.properties.json b/workflow-templates/scala-release.properties.json new file mode 100644 index 0000000..28fc9ea --- /dev/null +++ b/workflow-templates/scala-release.properties.json @@ -0,0 +1,7 @@ +{ + "name": "Scala Release", + "description": "Publish a tagged Scala release to Evolution's Artifactory, via the shared Evolution workflow.", + "iconName": "example", + "categories": ["Scala", "Publishing"], + "filePatterns": ["build.sbt$"] +} diff --git a/workflow-templates/scala-release.yml b/workflow-templates/scala-release.yml new file mode 100644 index 0000000..6bff06a --- /dev/null +++ b/workflow-templates/scala-release.yml @@ -0,0 +1,11 @@ +name: Publish Release + +on: + push: + tags: + - 'v*' + +jobs: + release: + uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@v5.1.0 + secrets: inherit From 647bd510d5da98220ab8d95b10bf1761ed30a272 Mon Sep 17 00:00:00 2001 From: sshevchenko Date: Fri, 7 Aug 2026 20:41:21 +0200 Subject: [PATCH 2/4] Pin release starter workflow to v6 --- workflow-templates/scala-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-templates/scala-release.yml b/workflow-templates/scala-release.yml index 6bff06a..58b46bf 100644 --- a/workflow-templates/scala-release.yml +++ b/workflow-templates/scala-release.yml @@ -7,5 +7,5 @@ on: jobs: release: - uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@v5.1.0 + uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@v6 secrets: inherit From 182a3539919f0d324beb484604b4be1ff2f8a858 Mon Sep 17 00:00:00 2001 From: sshevchenko Date: Fri, 7 Aug 2026 21:52:52 +0200 Subject: [PATCH 3/4] Pin starter workflows to a commit sha --- workflow-templates/scala-ci.yml | 3 +-- workflow-templates/scala-release.yml | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow-templates/scala-ci.yml b/workflow-templates/scala-ci.yml index 045453f..cf74af8 100644 --- a/workflow-templates/scala-ci.yml +++ b/workflow-templates/scala-ci.yml @@ -7,5 +7,4 @@ on: jobs: test: - uses: evolution-gaming/scala-github-actions/.github/workflows/ci.yml@v6 - secrets: inherit + uses: evolution-gaming/scala-github-actions/.github/workflows/ci.yml@2a389d2a5f4b093e72f738464bd7472bd0c3b4b8 # v6 diff --git a/workflow-templates/scala-release.yml b/workflow-templates/scala-release.yml index 58b46bf..1471dc7 100644 --- a/workflow-templates/scala-release.yml +++ b/workflow-templates/scala-release.yml @@ -7,5 +7,6 @@ on: jobs: release: - uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@v6 + uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@2a389d2a5f4b093e72f738464bd7472bd0c3b4b8 # v6 + # the release job publishes to Artifactory, so it does need the org secrets secrets: inherit From bb205fb74ce14c638884da8fd960ccd16e5363f7 Mon Sep 17 00:00:00 2001 From: sshevchenko Date: Fri, 7 Aug 2026 22:05:11 +0200 Subject: [PATCH 4/4] Re-pin starter workflows to v6.2.0 --- workflow-templates/scala-ci.yml | 2 +- workflow-templates/scala-release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow-templates/scala-ci.yml b/workflow-templates/scala-ci.yml index cf74af8..1647815 100644 --- a/workflow-templates/scala-ci.yml +++ b/workflow-templates/scala-ci.yml @@ -7,4 +7,4 @@ on: jobs: test: - uses: evolution-gaming/scala-github-actions/.github/workflows/ci.yml@2a389d2a5f4b093e72f738464bd7472bd0c3b4b8 # v6 + uses: evolution-gaming/scala-github-actions/.github/workflows/ci.yml@e9f3a8d1d95e9ed5b762627a28a1ce93fad45f0a # v6.2.0 diff --git a/workflow-templates/scala-release.yml b/workflow-templates/scala-release.yml index 1471dc7..ab1f116 100644 --- a/workflow-templates/scala-release.yml +++ b/workflow-templates/scala-release.yml @@ -7,6 +7,6 @@ on: jobs: release: - uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@2a389d2a5f4b093e72f738464bd7472bd0c3b4b8 # v6 + uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@e9f3a8d1d95e9ed5b762627a28a1ce93fad45f0a # v6.2.0 # the release job publishes to Artifactory, so it does need the org secrets secrets: inherit