You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

maven.yml 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # This workflow will build a Java project with Maven
  2. # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
  3. #
  4. # Suppress Maven download messages by "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn",
  5. # see https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output.
  6. name: Build AspectJ
  7. on:
  8. push:
  9. branches: [ master ]
  10. pull_request:
  11. branches: [ master ]
  12. workflow_dispatch:
  13. jobs:
  14. build:
  15. # No automatic builds for Dependabot PRs
  16. # Caveat: cannot start 'if:' expression with '!', hence '!= true'
  17. if: startsWith(github.actor, 'dependabot') != true
  18. strategy:
  19. fail-fast: false
  20. matrix:
  21. # AspectJ_JDK_Update: Always keep LTS versions + latest version supported by JDT Core
  22. # Check for available Temurin releases on https://adoptium.net/releases.html
  23. java: [ 17, 21, 22 ]
  24. runs-on: ubuntu-latest
  25. steps:
  26. - uses: actions/checkout@v4
  27. - name: Set up JDK ${{ matrix.java }}
  28. uses: actions/setup-java@v4
  29. with:
  30. java-version: ${{ matrix.java }}
  31. distribution: temurin
  32. - name: Print tool versions
  33. run: |
  34. java -version
  35. ./mvnw -B --version
  36. ant -version
  37. - name: Set up cache for ~./m2/repository
  38. uses: actions/cache@v4
  39. with:
  40. path: |
  41. ~/.m2/repository
  42. !~/.m2/repository/org/aspectj
  43. key: maven-${{ runner.os }}-java-${{ matrix.java }}-${{ hashFiles('**/pom.xml') }}
  44. restore-keys: |
  45. maven-${{ runner.os }}-java-${{ matrix.java }}-
  46. maven-${{ runner.os }}-
  47. maven-
  48. - name: Compile + package code
  49. # Also install (not just package) for subsequent build steps
  50. run: ./mvnw -B --file pom.xml -DskipTests install "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
  51. - name: Attach aspectjrt to build
  52. uses: actions/upload-artifact@v4
  53. with:
  54. name: aspectjrt-java${{ matrix.java }}
  55. # Binary, source, javadoc JARs + flattened POM
  56. path: |
  57. aspectjrt/target/aspectjrt-*.jar
  58. aspectjrt/target/flattened-pom.xml
  59. - name: Attach aspectjweaver to build
  60. uses: actions/upload-artifact@v4
  61. with:
  62. name: aspectjweaver-java${{ matrix.java }}
  63. # Binary, source, javadoc JARs + flattened POM
  64. path: |
  65. aspectjweaver/target/aspectjweaver-*.jar
  66. aspectjweaver/target/flattened-pom.xml
  67. - name: Attach aspectjtools to build
  68. uses: actions/upload-artifact@v4
  69. with:
  70. name: aspectjtools-java${{ matrix.java }}
  71. # Binary, source, javadoc JARs + flattened POM
  72. path: |
  73. aspectjtools/target/aspectjtools-*.jar
  74. aspectjtools/target/flattened-pom.xml
  75. - name: Attach installer to build
  76. uses: actions/upload-artifact@v4
  77. with:
  78. name: installer-java${{ matrix.java }}
  79. # Installer JAR + flattened POM
  80. path: |
  81. installer/target/aspectj-*.jar
  82. installer/target/flattened-pom.xml
  83. - name: Create docs
  84. run: ./mvnw -B --file pom.xml -DskipTests package -pl docs -P create-docs "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
  85. - name: Attach docs to build
  86. uses: actions/upload-artifact@v4
  87. with:
  88. name: aspectj-docs-java${{ matrix.java }}
  89. # Re-zip docs directory instead of wrapping existing distribution archive into another zip archive
  90. path: aj-build/dist/docs/
  91. - name: Run Tests
  92. run: ./mvnw -B --file pom.xml -Daspectj.tests.verbose=false verify "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"