Skip to content

Set of github actions workflows used in the SoftwareMill github repositories

License

Notifications You must be signed in to change notification settings

softwaremill/github-actions-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Actions Workflows

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.

Architecture

  1. All Workflows have to be located in the .github/worksflows path, otherwise GitHub Actions won't be able to use them.

  2. Actions and Workflows differ in GitHub Actions. This repository contains only Workflows.

    • Action is a self-contained piece of code written e.g. in JS.

      example-action-use:
        uses: actions/checkout@v4
    • Workflow is not a code, but a collection of correlated Actions contained in yaml files.

      example-workflow-use:
        uses: softwaremill/github-actions-workflows/.github/workflows/auto-merge.yml@main

Helpful links

List of actions used in 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

List of reusable workflows

  1. Auto Merge
  2. Label
  3. Scala Steward
  4. Publish Release
  5. Mima
  6. Build Scala
  7. Test Report
  8. Rebase cmd
  9. Rebase cmd dispatch

This workflow is responsible for merging pull requests that are ready to be merged.

Usage

  auto-merge:
    uses: softwaremill/github-actions-workflows/.github/workflows/auto-merge.yml@main

List of repositories using this workflow

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

Usage

  label:
    uses: softwaremill/github-actions-workflows/.github/workflows/label.yml@main

List of repositories using this workflow

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.

Usage

  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}}

List of input params

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"

List of secrets

Name Description
repo-github-token -

List of repositories using this workflow

Repository Files
sttp-openai scala-steward.yml
adopt-tapir scala-steward.yml
macwire scala-steward.yml
magnolia scala-steward.yml
sttp-shared scala-steward.yml
sttp-model scala-steward.yml
tapir scala-steward.yml
sttp-apispec scala-steward.yml
bootzooka scala-steward.yml
sttp scala-steward.yml
ox scala-steward.yml
kmq scala-steward.yml
retry scala-steward.yml

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.

Usage

  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

List of input params

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

List of repositories using this workflow

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).

Usage

  mima:
    uses: softwaremill/github-actions-workflows/.github/workflows/mima.yml@main
    with:
      java-version: '11'
      java-opts: "-Xmx4G"

List of input params

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"

List of repositories using this workflow

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.

Usage

  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

List of input params

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

List of repositories using this workflow

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.

Usage

  test-report:
    uses: softwaremill/github-actions-workflows/.github/workflows/test-report.yml@main

List of repositories using this workflow

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.

Usage

  rebase:
    uses: softwaremill/github-actions-workflows/.github/workflows/rebase-cmd.yml@main
    secrets:
      repo-github-token: ${{ secrets.REPO_GITHUB_TOKEN }}

List of secrets

Name Description
repo-github-token -

List of repositories using this workflow

Repository Files
tapir rebase-cmd.yml
ox rebase-cmd.yml

This workflow is responsible for dispatching rebase when it gets a command /rebase.

Usage

  rebase-cmd-dispatch:
    uses: softwaremill/github-actions-workflows/.github/workflows/rebase-cmd-dispatch.yml@main
    secrets:
      repo-github-token: ${{ secrets.REPO_GITHUB_TOKEN }}

List of secrets

Name Description
repo-github-token -

List of repositories using this workflow

Repository Files
tapir rebase-cmd-dispatch.yml
ox rebase-cmd-dispatch.yml

Remarks

  • All workflows using sbt with ubuntu 24.04 need to add setup-sbt step because sbt was removed from the image as described here.

About

Set of github actions workflows used in the SoftwareMill github repositories

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published