123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # This workflow will build a Java project with Maven
- # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-
- name: Build AspectJ
-
- on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
- workflow_dispatch:
-
- jobs:
- build:
- # No automatic builds for Dependabot PRs
- # Caveat: cannot start 'if:' expression with '!', hence '!= true'
- if: startsWith(github.actor, 'dependabot') != true
-
- strategy:
- fail-fast: false
- matrix:
- # Check for available Temurin releases on https://adoptium.net/releases.html
- java: [ 11, 17, 19 ]
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
-
- - name: Set up JDK ${{ matrix.java }}
- uses: actions/setup-java@v3
- with:
- java-version: ${{ matrix.java }}
- distribution: temurin
-
- - name: Print tool versions
- run: |
- java -version
- ./mvnw -B --version
- ant -version
-
- - name: Set up cache for ~./m2/repository
- uses: actions/cache@v3
- with:
- path: |
- ~/.m2/repository
- !~/.m2/repository/org/aspectj
- key: maven-${{ runner.os }}-java-${{ matrix.java }}-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- maven-${{ runner.os }}-java-${{ matrix.java }}-
- maven-${{ runner.os }}-
- maven-
-
- - name: Compile + package code
- # Also install (not just package) for subsequent build steps
- run: ./mvnw -B --file pom.xml -DskipTests install
-
- - name: Attach aspectjrt to build
- uses: actions/upload-artifact@v3
- with:
- name: aspectjrt-java${{ matrix.java }}
- # Binary, source, javadoc JARs + flattened POM
- path: |
- aspectjrt/target/aspectjrt-*.jar
- aspectjrt/target/flattened-pom.xml
-
- - name: Attach aspectjweaver to build
- uses: actions/upload-artifact@v3
- with:
- name: aspectjweaver-java${{ matrix.java }}
- # Binary, source, javadoc JARs + flattened POM
- path: |
- aspectjweaver/target/aspectjweaver-*.jar
- aspectjweaver/target/flattened-pom.xml
-
- - name: Attach aspectjtools to build
- uses: actions/upload-artifact@v3
- with:
- name: aspectjtools-java${{ matrix.java }}
- # Binary, source, javadoc JARs + flattened POM
- path: |
- aspectjtools/target/aspectjtools-*.jar
- aspectjtools/target/flattened-pom.xml
-
- - name: Create docs
- run: ./mvnw -B --file pom.xml -DskipTests process-resources -pl docs -P create-docs
-
- - name: Attach docs to build
- uses: actions/upload-artifact@v3
- with:
- name: aspectj-docs-java${{ matrix.java }}
- # Re-zip docs directory instead of wrapping existing distribution archive into another zip archive
- path: aj-build/dist/docs/
-
- - name: Run Tests
- # Tests in module ajde call Swing/AWT classes. Without frame buffer they throw
- # HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.
- uses: GabrielBB/xvfb-action@v1
- with:
- run: ./mvnw -B --file pom.xml -Daspectj.tests.verbose=false verify
|