diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..edadba13131 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: CI + +on: + push: + paths: + - '**.java' + - '**.xml' + pull_request: + branches: + - master + paths: + - '**.java' + - '**.xml' + +env: + MAVEN_OPTS: -Xmx3g -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 + with: + java-version: 8 + java-package: jdk+fx + # https://github.com/actions/setup-java#supported-distributions + distribution: zulu + cache: maven + + # https://docs.travis-ci.com/user/languages/java/#maven-dependency-management + - run: > + mvn + install + jacoco:prepare-agent + --define jacoco.skip=false + --define maven.javadoc.skip=true + --define skipTests=true + --batch-mode + --show-version + + # https://docs.travis-ci.com/user/languages/java/#maven-default-script-command + # tests are interdependent and require a specific order + # running in parallel causes some tests to fail + - run: mvn test --batch-mode + + - env: + CI_BUILD_NUMBER: ${{ github.run_id }} + CI_BUILD_URL: https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}/checks + CI_BRANCH: ${{ github.head_ref }} + CI_NAME: github + CI_PULL_REQUEST: ${{ github.event.pull_request.number }} + # do we need all these goals? Most other projects just do jacoco:report and coveralls:report + run: > + mvn + jacoco:report + jacoco:report-aggregate + verify + coveralls:report + --define jacoco.skip=false + --define repoToken=${{ secrets.GITHUB_TOKEN }} diff --git a/pom.xml b/pom.xml index 2be9fcc6f7a..c9871a57dc8 100644 --- a/pom.xml +++ b/pom.xml @@ -96,6 +96,25 @@ + + + + + org.eluder.coveralls + coveralls-maven-plugin + 4.3.0 + + + + ${root.dir}/Mage.Reports/target/site/jacoco-aggregate/jacoco.xml + + + + ${root.dir}/**/generated-sources/**/*.java + ${root.dir}/Mage.Server/target/generated-sources/**/*.java + + +