Skip to content

Merge pull request #3608 from jyoo980/master #148

Merge pull request #3608 from jyoo980/master

Merge pull request #3608 from jyoo980/master #148

Workflow file for this run

name: Tests
on:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
ivyCache
lib
key: ivy-${{ hashFiles('**/ivy.xml') }}
restore-keys: |
ivy-
- name: Build with Ant
run: ant -noinput dist
- uses: actions/upload-artifact@v4
with:
name: lombok.jar
path: dist/lombok.jar
test-javac:
runs-on: ubuntu-latest
needs: build
env:
EA_JDK: 22
strategy:
matrix:
jdk: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
goal: [javacCurrent]
include:
- jdk: 11
goal: javac6
- jdk: 11
goal: javac8
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.jdk }}
if: ${{ matrix.jdk < env.EA_JDK }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jdk }}
distribution: 'zulu'
- name: Set up JDK ${{ matrix.jdk }} Early Access release
if: ${{ matrix.jdk >= env.EA_JDK }}
uses: oracle-actions/setup-java@v1
with:
website: jdk.java.net
release: ${{ matrix.jdk }}
version: latest
- name: Install Ant
env:
ANT_VERSION: 1.10.14
run: |
wget https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.zip
unzip apache-ant-$ANT_VERSION-bin.zip -d "${HOME}"
echo "ANT_HOME=${HOME}/apache-ant-$ANT_VERSION" >> $GITHUB_ENV
echo "${HOME}/apache-ant-$ANT_VERSION/bin" >> $GITHUB_PATH
- name: Cache dependencies
uses: actions/cache@v4
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-I-build
- eclipse-oxygen-full
- eclipse-2022-03-full
- eclipse-2023-09-full
- eclipse-2023-12-full
- eclipse-I-build-full
- ecj11
- ecj14
- ecj16
- ecj19
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'zulu'
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
ivyCache
lib
key: ivy-${{ hashFiles('**/ivy.xml') }}
restore-keys: |
ivy-
- name: Cache base testenv
if: ${{ !endsWith(matrix.version, 'full') }}
uses: actions/cache@v4
with:
path: |
testenv
key: base-testenv-${{ hashFiles('**/setup.ant.xml') }}
- name: Cache full testenv
if: ${{ endsWith(matrix.version, 'full') }}
uses: actions/cache@v4
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, 22]
tool:
- {name: "maven", cmd: "mvn compile"}
- {name: "gradle", cmd: "gradle assemble"}
- {name: "ant", cmd: "ant dist"}
- {name: "bazel", cmd: "bazel build //:ProjectRunner"}
exclude:
- {tool: {name: "gradle", cmd: "gradle assemble"}, jdk: 22}
fail-fast: false
env:
IMAGE_NAME: lombok-${{ matrix.tool.name }}-jdk${{ matrix.jdk }}
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/download-artifact@v4
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 }}"