mirror of
https://github.com/tiennm99/lombok.git
synced 2026-09-15 00:23:01 +00:00
193 lines
4.9 KiB
YAML
193 lines
4.9 KiB
YAML
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-202403
|
|
- eclipse-I-build
|
|
- eclipse-oxygen-full
|
|
- eclipse-2022-03-full
|
|
- eclipse-2023-09-full
|
|
- eclipse-2023-12-full
|
|
- eclipse-2024-03-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 }}"
|