GitHub Actions Reusable Workflows used in
SoftwareMill projects.
If you use a workflow from this repository, please add its usage to the corresponding section
List of repositories using this workflow
in this document.
-
All Workflows have to be located in the
.github/worksflows
path, otherwise GitHub Actions won't be able to use them. -
Actions and Workflows differ in GitHub Actions. This repository contains only Workflows.
action | version | description |
---|---|---|
actions/checkout | v4 | checks-out your repository under $GITHUB_WORKSPACE |
actions/setup-java | v4 | downloads Java, configures runners, caches dependencies |
actions/upload-artifact | v4 | uploads artifacts from the workflow's workspace to be downloaded later |
dorny/test-reporter | v1 | generates test reports and uploads them as workflow artifacts. |
pascalgn/automerge-action | v0.16.4 | automatically merges PRs with automerge label |
peter-evans/create-or-update-comment | v4 | creates or updates issues or pull request comments |
peter-evans/rebase | v3 | rebases pull requests in a repository |
peter-evans/slash-command-dispatch | v4 | creates dispatch events for slash commands |
release-drafter/release-drafter | v5 | drafts release notes based on merged pull requests |
sbt/setup-sbt | v1 | enables sbt runner |
scala-steward-org/scala-steward-action | v2 | automates dependency updates for Scala projects |
srvaroa/labeler | master | manages labels for both Pull Requests and Issues |
- Auto Merge
- Label
- Scala Steward
- Publish Release
- Mima
- Build Scala
- Test Report
- Rebase cmd
- Rebase cmd dispatch
This workflow is responsible for merging pull requests that are ready to be merged.
auto-merge:
uses: softwaremill/github-actions-workflows/.github/workflows/auto-merge.yml@main
Repository | Files |
---|---|
sttp-openai | ci.yml |
adopt-tapir | adopt-tapir-ci.yml |
macwire | ci.yml |
magnolia | ci.yml |
sttp-shared | ci.yml |
sttp-model | ci.yml |
tapir | ci.yml |
bootzooka | bootzooka-ci.yml |
sttp | ci.yml |
ox | ci.yml |
This workflow is responsible for labeling pull requests. It attaches label if there is exactly one file changed by
steward and this file belongs to a whitelist specified by labeler.yml
label:
uses: softwaremill/github-actions-workflows/.github/workflows/label.yml@main
Repository | Files |
---|---|
sttp-openai | ci.yml |
adopt-tapir | adopt-tapir-ci.yml |
macwire | ci.yml |
magnolia | ci.yml |
sttp-shared | ci.yml |
sttp-model | ci.yml |
tapir | ci.yml |
bootzooka | bootzooka-ci.yml |
sttp | ci.yml |
ox | ci.yml |
This workflow is responsible for running Scala Steward.
scala-steward:
uses: softwaremill/github-actions-workflows/.github/workflows/scala-steward.yml@main
with:
java-version: '11'
secrets:
repo-github-token: ${{secrets.REPO_GITHUB_TOKEN}}
Name | Description | Required | Default | Example |
---|---|---|---|---|
java-version | Java version used in the workflow | No | '11' | '21' |
java-opts | Java options used in the workflow | No | "" | "-Xmx3000M" |
Name | Description |
---|---|
repo-github-token | - |
This workflow is responsible for publishing build artifacts and release notes of scala projects.
It uses multiple secrets so clause secrets: inherit
has to be added to the workflow definition.
publish-release:
uses: softwaremill/github-actions-workflows/.github/workflows/publish-release.yml@main
secrets: inherit
with:
java-version: '11'
java-opts: "-Xmx3000M -Dsbt.task.timings=true"
sttp-native: 1
Name | Description | Required | Default | Example |
---|---|---|---|---|
java-version | Java version used in the workflow | No | '11' | '21' |
java-opts | Java options used in the workflow | No | "" | "-Xmx3000M -Dsbt.task.timings=true" |
sttp-native | Flag indicating if the sttp-native should be included in the aggregate projects | No | 0 | 1 |
Repository | Files |
---|---|
sttp-openai | ci.yml |
sttp-shared | ci.yml |
sttp-model | ci.yml |
sttp-apispec | ci.yml |
macwire | ci.yml |
ox | ci.yml |
kmq | ci.yml |
retry | ci.yml |
This workflow is responsible for running MiMa (binary compatibility checker).
mima:
uses: softwaremill/github-actions-workflows/.github/workflows/mima.yml@main
with:
java-version: '11'
java-opts: "-Xmx4G"
Name | Description | Required | Default | Example |
---|---|---|---|---|
java-version | Java version used in the workflow | No | '11' | '21' |
java-opts | Java options used in the workflow | No | "" | "-Xmx3000M -Dsbt.task.timings=true" |
Repository | Files |
---|---|
sttp-shared | ci.yml |
sttp-model | ci.yml |
sttp-apispec | ci.yml |
sttp | ci.yml |
kmq | ci.yml |
This workflow is responsible for building Scala projects.
build-scala:
uses: softwaremill/github-actions-workflows/.github/workflows/build-scala.yml@main
with:
java-version: '11'
java-opts: '-Xmx3000M -Dsbt.task.timings=true'
sttp-native: 1
install-libidn11: true
Name | Description | Required | Default | Example |
---|---|---|---|---|
java-version | Java version used in the workflow | No | '11' | '21' |
java-opts | Java options used in the workflow | No | "" | "-Xmx3000M -Dsbt.task.timings=true" |
sttp-native | Flag indicating if the sttp-native should be included in the aggregate projects | No | 0 | 1 |
install-libidn11 | Flag indicating if the libidn11 library should be installed | No | false | true |
install-libidn2 | Flag indicating if the libidn2 library should be installed | No | false | true |
compile-documentation | Flag indicating if the project documentation should be compiled | No | false | true |
Repository | Files |
---|---|
macwire | ci.yml |
sttp-shared | ci.yml |
sttp-model | ci.yml |
sttp-apispec | ci.yml |
kmq | ci.yml |
This workflow is responsible for generating test reports.
test-report:
uses: softwaremill/github-actions-workflows/.github/workflows/test-report.yml@main
Repository | Files |
---|---|
sttp-openai | test-report.yml |
tapir | test-report.yml |
ox | test-report.yml |
This workflow is responsible for rebasing pull requests and adding a comment to them.
rebase:
uses: softwaremill/github-actions-workflows/.github/workflows/rebase-cmd.yml@main
secrets:
repo-github-token: ${{ secrets.REPO_GITHUB_TOKEN }}
Name | Description |
---|---|
repo-github-token | - |
Repository | Files |
---|---|
tapir | rebase-cmd.yml |
ox | rebase-cmd.yml |
This workflow is responsible for dispatching rebase when it gets a command /rebase
.
rebase-cmd-dispatch:
uses: softwaremill/github-actions-workflows/.github/workflows/rebase-cmd-dispatch.yml@main
secrets:
repo-github-token: ${{ secrets.REPO_GITHUB_TOKEN }}
Name | Description |
---|---|
repo-github-token | - |
Repository | Files |
---|---|
tapir | rebase-cmd-dispatch.yml |
ox | rebase-cmd-dispatch.yml |
- All workflows using sbt with ubuntu 24.04 need to add
setup-sbt
step because sbt was removed from the image as described here.