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/worksflowspath, otherwise GitHub Actions won't be able to use them. -
Actions and Workflows differ in GitHub Actions. This repository contains only Workflows.
This workflow is responsible for merging pull requests that are ready to be merged.
auto-merge:
# only for PRs by softwaremill-ci
if: github.event.pull_request.user.login == 'softwaremill-ci'
needs: [ ci, mima, label ]
uses: softwaremill/github-actions-workflows/.github/workflows/auto-merge.yml@main
secrets: inheritThis 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:
# only for PRs by softwaremill-ci
if: github.event.pull_request.user.login == 'softwaremill-ci'
uses: softwaremill/github-actions-workflows/.github/workflows/label.yml@main
secrets: inheritThis workflow is responsible for running Scala Steward.
name: Scala Steward
# This workflow will launch at 00:00 every day
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write # Required to checkout and push changes
pull-requests: write # Required to create PRs for dependency updates
jobs:
scala-steward:
uses: softwaremill/github-actions-workflows/.github/workflows/scala-steward.yml@main
secrets:
github-token: ${{ secrets.SOFTWAREMILL_CI_PR_TOKEN }}
with:
java-version: '21'| 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" |
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 |
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" |
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 |
This workflow is responsible for generating test reports.
test-report:
uses: softwaremill/github-actions-workflows/.github/workflows/test-report.yml@main- All workflows using sbt with ubuntu 24.04 need to add
setup-sbtstep because sbt was removed from the image as described here.
| 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 | v2 | generates test reports and uploads them as workflow artifacts. |
| pascalgn/automerge-action | v0.16.4 | automatically merges PRs with automerge label |
| release-drafter/release-drafter | v6 | 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 |