name: Tests on: push: pull_request: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 11 - name: Cache dependencies uses: actions/cache@v3 with: path: | ivyCache lib key: ${{ runner.os }}-${{ hashFiles('**/ivy.xml') }} restore-keys: | ${{ runner.os }}- - name: Build with Ant run: ant -noinput dist - uses: actions/upload-artifact@v3 with: name: lombok.jar path: dist/lombok.jar test-javac: runs-on: ubuntu-latest needs: build strategy: matrix: jdk: [11, 12, 13, 14, 15, 16, 17, 18, 19] goal: [javacCurrent] include: - jdk: 11 goal: javac6 - jdk: 11 goal: javac8 fail-fast: false steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v3 with: java-version: ${{ matrix.jdk }} distribution: 'zulu' - name: Cache dependencies uses: actions/cache@v3 with: path: | ivyCache lib key: ${{ runner.os }}-${{ hashFiles('**/ivy.xml') }} restore-keys: | ${{ runner.os }}- - name: Run tests run: ant -noinput test.${{ matrix.goal }} test-eclipse: runs-on: ubuntu-latest needs: build strategy: matrix: version: - eclipse-oxygen - eclipse-202006 - eclipse-202006-jdk8 - eclipse-202212 - eclipse-oxygen-full - eclipse-2022-03-full - ecj11 - ecj14 - ecj16 - ecj19 fail-fast: false steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: 11 distribution: 'zulu' - name: Cache dependencies uses: actions/cache@v3 with: path: | ivyCache lib key: ${{ runner.os }}-${{ hashFiles('**/ivy.xml') }} restore-keys: | ${{ runner.os }}- - name: Build with Ant run: ant -noinput dist test.${{ matrix.version }} docker-integration-test: runs-on: ubuntu-latest needs: build strategy: matrix: jdk: [8, 9, 10, 11, 12, 13, 16] tool: - {name: "maven", cmd: "mvn compile"} - {name: "gradle", cmd: "gradle assemble"} - {name: "ant", cmd: "ant dist"} - {name: "bazel", cmd: "bazel build //:ProjectRunner"} fail-fast: false env: IMAGE_NAME: lombok-${{ matrix.tool.name }}-jdk${{ matrix.jdk }} steps: - name: Checkout uses: actions/checkout@v3 - uses: actions/download-artifact@v3 with: name: lombok.jar - name: Build container working-directory: ./docker run: docker build --build-arg jdk=${{ matrix.jdk }} -t $IMAGE_NAME -f ${{ matrix.tool.name }}/Dockerfile . - name: Compile in container run: docker run --entrypoint="" -v $(pwd)/lombok.jar:/workspace/lombok.jar $IMAGE_NAME /bin/bash -c "cd classpath; ${{ matrix.tool.cmd }}"