diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..3faae00 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,83 @@ +name: "Test Coverage" + +on: + push: + branches: + - 'main' + + pull_request: + branches: + - main + +env: + GH_SBT_OPTS: "-Xss64m -Xms1024m -Xmx4G -XX:MaxInlineLevel=18 -XX:+UnlockExperimentalVMOptions" + GH_JVM_OPTS: "-Xss64m -Xms1024m -Xmx4G -XX:MaxInlineLevel=18 -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler" + +jobs: + + build: + runs-on: ubuntu-latest + + strategy: + matrix: + scala: + - { name: "Scala 3.3", version: "3.3.1", binary-version: "3", java-version: "17", java-distribution: "temurin", report: "report" } + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.scala.java-version }} + distribution: ${{ matrix.scala.java-distribution }} + + - name: Cache SBT + uses: actions/cache@v4 + with: + path: | + ~/.ivy2/cache + ~/.cache/coursier + ~/.sbt + key: ${{ runner.os }}-sbt-${{ matrix.scala.binary-version }}-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('**/build.properties') }} + restore-keys: | + ${{ runner.os }}-sbt-${{ matrix.scala.binary-version }}- + + - name: "[Codecov] Report ${{ matrix.scala.name }} ${{ matrix.scala.version }} - ${{ github.run_number }}" + if: ${{ matrix.scala.report == 'report' && github.event_name == 'push' }} + env: + CURRENT_BRANCH_NAME: ${{ github.ref }} + RUN_ID: ${{ github.run_id }} + RUN_NUMBER: ${{ github.run_number }} + JVM_OPTS: ${{ env.GH_JVM_OPTS }} + SBT_OPTS: ${{ env.GH_SBT_OPTS }} + run: | + echo "[BEFORE]CURRENT_BRANCH_NAME=${CURRENT_BRANCH_NAME}" + export CURRENT_BRANCH_NAME="${CURRENT_BRANCH_NAME#refs/heads/}" + echo " [AFTER]CURRENT_BRANCH_NAME=${CURRENT_BRANCH_NAME}" + echo "RUN_ID=${RUN_ID}" + echo "RUN_NUMBER=${RUN_NUMBER}" + echo "Push #${PUSH_NUMBER}" + java -version + .github/workflows/sbt-build-all-with-coverage.sh ${{ matrix.scala.version }} + + + - name: "[Codecov] Report ${{ matrix.scala.name }} ${{ matrix.scala.version }} - ${{ github.run_number }} - PR-#${{ github.event.pull_request.number }} - ${{ github.run_number }}" + if: ${{ matrix.scala.report == 'report' && github.event_name == 'pull_request' }} + env: + CURRENT_BRANCH_NAME: ${{ github.base_ref }} + RUN_ID: ${{ github.run_id }} + RUN_NUMBER: ${{ github.run_number }} + PR_NUMBER: ${{ github.event.pull_request.number }} + JVM_OPTS: ${{ env.GH_JVM_OPTS }} + SBT_OPTS: ${{ env.GH_SBT_OPTS }} + run: | + echo "Rull request to the '${CURRENT_BRANCH_NAME}' branch" + echo "RUN_ID=${RUN_ID}" + echo "RUN_NUMBER=${RUN_NUMBER}" + echo "PR #${PR_NUMBER}" + java -version + .github/workflows/sbt-build-all-with-coverage.sh ${{ matrix.scala.version }} + + - if: ${{ matrix.scala.report == 'report' }} + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..252003b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,3 @@ +comment: + layout: "reach, diff, flags, files" + behavior: default