diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5476d56..72bdaf7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,111 +6,34 @@ on: branches: ['**'] tags: [v*] jobs: - ci: + build: + uses: softwaremill/github-actions-workflows/.github/workflows/build-scala.yml@main # run on 1) push, 2) external PRs, 3) softwaremill-ci PRs # do not run on internal, non-steward PRs since those will be run by push to branch if: | github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository || github.event.pull_request.user.login == 'softwaremill-ci' - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '21' - cache: 'sbt' - - name: Compile - run: sbt -v compile - - name: Compile documentation - run: sbt -v compileDocs - - name: Test - run: sbt -v test - - uses: actions/upload-artifact@v4 # upload test results - if: success() || failure() # run this step even if previous step failed - with: - name: 'tests-results' - path: '**/test-reports/TEST*.xml' + with: + java-version: '21' + compile-documentation: true publish: - name: Publish release - needs: [ci] + uses: softwaremill/github-actions-workflows/.github/workflows/publish-release.yml@main + needs: [build] if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v')) - runs-on: ubuntu-22.04 - env: - JAVA_OPTS: -Xmx4G - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '21' - cache: 'sbt' - - name: Compile - run: sbt compile - - name: Publish artifacts - run: sbt ci-release - env: - PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} - PGP_SECRET: ${{ secrets.PGP_SECRET }} - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - - name: Extract version from commit message - run: | - version=${GITHUB_REF/refs\/tags\/v/} - echo "VERSION=$version" >> $GITHUB_ENV - env: - COMMIT_MSG: ${{ github.event.head_commit.message }} - - name: Publish release notes - uses: release-drafter/release-drafter@v5 - with: - config-name: release-drafter.yml - publish: true - name: "v${{ env.VERSION }}" - tag: "v${{ env.VERSION }}" - version: "v${{ env.VERSION }}" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + secrets: inherit + with: + java-version: '21' + java-opts: "-Xmx4G" - # `automerge` label is attached iff there is exactly one file changed by steward and this file belongs to a - # whitelist specified by `labeler.yml` label: - name: Attach automerge label # only for PRs by softwaremill-ci if: github.event.pull_request.user.login == 'softwaremill-ci' - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - # count number of files changed - - name: Count number of files changed - id: count-changed-files - run: | - N=$(git diff --name-only -r HEAD^1 HEAD | wc -w) - echo "changed_files_num=$N" >> $GITHUB_OUTPUT - - name: Launch labeler - # skip if more than one file changed - if: steps.count-changed-files.outputs.changed_files_num == 1 - uses: srvaroa/labeler@master - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + uses: softwaremill/github-actions-workflows/.github/workflows/label.yml@main auto-merge: - name: Auto merge # only for PRs by softwaremill-ci if: github.event.pull_request.user.login == 'softwaremill-ci' - needs: [ ci, label ] - runs-on: ubuntu-22.04 - steps: - - id: automerge - name: automerge - uses: "pascalgn/automerge-action@v0.15.6" - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - MERGE_METHOD: "squash" + needs: [ build, label ] + uses: softwaremill/github-actions-workflows/.github/workflows/auto-merge.yml@main \ No newline at end of file diff --git a/.github/workflows/scala-steward.yml b/.github/workflows/scala-steward.yml index cc913fd..c1fae66 100644 --- a/.github/workflows/scala-steward.yml +++ b/.github/workflows/scala-steward.yml @@ -8,21 +8,8 @@ on: jobs: scala-steward: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '21' - cache: 'sbt' - - name: Launch Scala Steward - uses: scala-steward-org/scala-steward-action@v2 - with: - author-name: scala-steward - author-email: scala-steward - github-token: ${{ secrets.REPO_GITHUB_TOKEN }} - repo-config: .scala-steward.conf - ignore-opts-files: false + uses: softwaremill/github-actions-workflows/.github/workflows/scala-steward.yml@main + with: + java-version: '21' + secrets: + repo-github-token: ${{secrets.REPO_GITHUB_TOKEN}} \ No newline at end of file diff --git a/.github/workflows/test-report.yml b/.github/workflows/test-report.yml index fde9628..bef86b1 100644 --- a/.github/workflows/test-report.yml +++ b/.github/workflows/test-report.yml @@ -11,14 +11,5 @@ permissions: checks: write jobs: - report: - runs-on: ubuntu-22.04 - # If the workflow run was skipped or cancelled this action would fail, generating a test report is unnecessary. - if: ${{ github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == 'failure' }} - steps: - - uses: dorny/test-reporter@v1 - with: - artifact: '/tests-results(.*)/' - name: 'Test report for $1' - path: '**/test-reports/TEST*.xml' - reporter: java-junit + test-report: + uses: softwaremill/github-actions-workflows/.github/workflows/test-report.yml@main \ No newline at end of file diff --git a/build.sbt b/build.sbt index f9d7964..5b011b6 100644 --- a/build.sbt +++ b/build.sbt @@ -103,8 +103,8 @@ lazy val examples = (projectMatrix in file("examples")) ) .dependsOn(ox) -val compileDocs: TaskKey[Unit] = taskKey[Unit]("Compiles docs module throwing away its output") -compileDocs := { +val compileDocumentation: TaskKey[Unit] = taskKey[Unit]("Compiles docs module throwing away its output") +compileDocumentation := { (docs.jvm(scala2.head) / mdoc).toTask(" --out target/sttp-openai-docs").value }