diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 61023e6..5f5d687 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,178 +6,46 @@ 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-20.04 - env: - STTP_NATIVE: 1 - steps: - - name: Set Java Opts - run: | - echo "JAVA_OPTS=-Xmx3000M -Dsbt.task.timings=true" >> $GITHUB_ENV - - name: Checkout - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.ivy2/cache - ~/.coursier - key: sbt-cache-${{ runner.os }}-${{ hashFiles('project/build.properties') }} - - name: Install libidn11-dev - run: sudo apt-get install libidn11-dev - - name: Compile - run: sbt -v compile - - name: Test - run: sbt -v test - - name: Cleanup - run: | - rm -rf "$HOME/.ivy2/local" || true - find $HOME/.ivy2/cache -name "ivydata-*.properties" -delete || true - find $HOME/.ivy2/cache -name "*-LM-SNAPSHOT*" -delete || true - find $HOME/.cache/coursier/v1 -name "ivydata-*.properties" -delete || true - find $HOME/.sbt -name "*.lock" -delete || true + with: + java-opts: '-Xmx3000M -Dsbt.task.timings=true' + sttp-native: 1 + install-libidn11: true mima: + uses: softwaremill/github-actions-workflows/.github/workflows/mima.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-20.04 - steps: - - name: Set Java Opts - run: | - echo "JAVA_OPTS=-Xmx3000M -Dsbt.task.timings=true" >> $GITHUB_ENV - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 # checkout tags so that dynver works properly (we need the version for MiMa) - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.ivy2/cache - ~/.coursier - key: sbt-cache-${{ runner.os }}-${{ hashFiles('project/build.properties') }} - - name: Check MiMa # disable for major releases - run: sbt -v mimaReportBinaryIssues - - name: Cleanup - run: | - rm -rf "$HOME/.ivy2/local" || true - find $HOME/.ivy2/cache -name "ivydata-*.properties" -delete || true - find $HOME/.ivy2/cache -name "*-LM-SNAPSHOT*" -delete || true - find $HOME/.cache/coursier/v1 -name "ivydata-*.properties" -delete || true - find $HOME/.sbt -name "*.lock" -delete || true + with: + java-opts: '-Xmx3000M -Dsbt.task.timings=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-20.04 - env: - STTP_NATIVE: 1 - steps: - - name: Set Java Opts - run: | - echo "JAVA_OPTS=-Xmx3000M -Dsbt.task.timings=true" >> $GITHUB_ENV - - name: Checkout - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.ivy2/cache - ~/.coursier - key: sbt-cache-${{ runner.os }}-${{ hashFiles('project/build.properties') }} - - 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 }} - - name: Cleanup - run: | - rm -rf "$HOME/.ivy2/local" || true - find $HOME/.ivy2/cache -name "ivydata-*.properties" -delete || true - find $HOME/.ivy2/cache -name "*-LM-SNAPSHOT*" -delete || true - find $HOME/.cache/coursier/v1 -name "ivydata-*.properties" -delete || true - find $HOME/.sbt -name "*.lock" -delete || true + secrets: inherit + with: + java-opts: "-Xmx3000M -Dsbt.task.timings=true" + sttp-native: 1 - # `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, mima, 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" \ No newline at end of file + needs: [ build, mima, 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 7b59b45..070c35d 100644 --- a/.github/workflows/scala-steward.yml +++ b/.github/workflows/scala-steward.yml @@ -8,21 +8,6 @@ on: jobs: scala-steward: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 11 - 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 + secrets: + repo-github-token: ${{secrets.REPO_GITHUB_TOKEN}} \ No newline at end of file