Skip to content

Merge branch 'eclipse-npe-initializer' of https://github.com/Rawi01/l… #148

Merge branch 'eclipse-npe-initializer' of https://github.com/Rawi01/l…

Merge branch 'eclipse-npe-initializer' of https://github.com/Rawi01/l… #148

Workflow file for this run

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: ivy-${{ hashFiles('**/ivy.xml') }}
restore-keys: |
ivy-
- 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, 20, 21]
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 }}
if: ${{ matrix.jdk != 21 }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.jdk }}
distribution: 'zulu'
- name: Set up JDK 21-ea
if: ${{ matrix.jdk == 21 }}
uses: oracle-actions/setup-java@v1
with:
website: jdk.java.net
release: 21
version: latest
- name: Install Ant
run: |
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.13-bin.zip
unzip apache-ant-1.10.13-bin.zip -d "${HOME}"
echo "ANT_HOME=${HOME}/apache-ant-1.10.13" >> $GITHUB_ENV
echo "${HOME}/apache-ant-1.10.13/bin" >> $GITHUB_PATH
- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
ivyCache
lib
key: ivy-${{ hashFiles('**/ivy.xml') }}
restore-keys: |
ivy-
- 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-202309
- eclipse-202312
- eclipse-oxygen-full
- eclipse-2022-03-full
- eclipse-2023-09-full
- eclipse-2023-12-full
- ecj11
- ecj14
- ecj16
- ecj19
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'zulu'
- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
ivyCache
lib
key: ivy-${{ hashFiles('**/ivy.xml') }}
restore-keys: |
ivy-
- name: Cache base testenv
if: ${{ !endsWith(matrix.version, 'full') }}
uses: actions/cache@v3
with:
path: |
testenv
key: base-testenv-${{ hashFiles('**/setup.ant.xml') }}
- name: Cache full testenv
if: ${{ endsWith(matrix.version, 'full') }}
uses: actions/cache@v3
with:
path: |
testenv
key: ${{ matrix.version }}-testenv-${{ hashFiles('**/setup.ant.xml') }}
- name: Build with Ant
run: xvfb-run ant -noinput dist test.${{ matrix.version }}
docker-integration-test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
jdk: [8, 11, 17, 21]
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 }}"