Skip to content

Bump EL API version, adapt CI #1339

Bump EL API version, adapt CI

Bump EL API version, adapt CI #1339

Workflow file for this run

name: Weld CI
on:
pull_request:
branches: [ master ]
# Do not run for non-code changes
paths-ignore:
- '.gitignore'
- '*.md'
- '*.adoc'
- '*.txt'
jobs:
# builds Weld snapshot, downloads WFLY and upgrades it, prepares ENV variable
initial-build:
name: "Initial JDK 17 Weld Build + WildFly patch"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4.2.1
with:
java-version: 17
distribution: 'temurin'
- name: Download WildFly
run: |
# wget https://ci.wildfly.org/guestAuth/repository/download/WF_WildflyPreviewNightly/latest.lastSuccessful/wildfly-preview-latest-SNAPSHOT.zip
# unzip wildfly-preview-latest-SNAPSHOT.zip
wget https://ci.wildfly.org/guestAuth/repository/download/WF_Nightly/latest.lastSuccessful/wildfly-latest-SNAPSHOT.zip
unzip wildfly-latest-SNAPSHOT.zip
# ZIP contains two more ZIPs, sources and actual WFLY
rm wildfly-*-src.zip
rm wildfly-latest-SNAPSHOT.zip
unzip wildfly-*.zip -d container
cd container
mv ./* wildfly/
- name: Get Date
id: get-date
run: |
echo "::set-output name=date::$(/bin/date -u "+%Y-%m")"
shell: bash
- name: Cache Maven Repository
id: cache-maven
uses: actions/cache@v4
with:
path: ~/.m2/repository
# Caching is an automated pre/post action that installs the cache if the key exists and exports the cache
# after the job is done. In this case we refresh the cache monthly (by changing key) to avoid unlimited growth.
key: q2maven-master-${{ steps.get-date.outputs.date }}
- name: Build Weld SNAPSHOT
run: mvn clean install -DskipTests -Dno-format -B -V -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Patch WildFly
run: |
JBOSS_HOME=`pwd`'/container/*'
export JBOSS_HOME=`echo $JBOSS_HOME`
mvn clean package -Pupdate-jboss-as -Pupdate-jakarta-apis -Dtck -f jboss-as/pom.xml
- name: Zip Patched WildFly
run: |
cd container/
zip -r wildfly.zip wildfly
cd ..
- name: Persist WildFly
uses: actions/upload-artifact@v4
with:
name: wildfly-patched-zip
path: container/wildfly.zip
- name: Tar Maven Repo
shell: bash
run: tar -czf maven-repo.tgz -C ~ .m2/repository
- name: Persist Maven Repo
uses: actions/upload-artifact@v4
with:
name: maven-repo
path: maven-repo.tgz
- name: Delete Local Artifacts From Cache
shell: bash
run: rm -r ~/.m2/repository/org/jboss/weld*
# Weld in-container tests, does NOT include TCKs which are run as a separate job
incontainer-tests:
name: "Weld In-container Tests - JDK ${{matrix.java.name}}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
java:
- {
name: "17",
java-version: 17,
}
- {
name: "21",
java-version: 21,
}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java.name }}
uses: actions/setup-java@v4.2.1
with:
java-version: ${{ matrix.java.java-version }}
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Download Patched WildFly
uses: actions/download-artifact@v4
with:
name: wildfly-patched-zip
path: .
- name: Extract WildFly
run: unzip wildfly.zip
- name: Build with Maven
run: |
JBOSS_HOME=`pwd`'/wildfly'
export JBOSS_HOME=`echo $JBOSS_HOME`
mvn clean verify -Dincontainer -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -pl '!jboss-tck-runner'
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: |
find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
find . -name 'server.log' -type f | tar -czf server-log.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-incontainer-jdk${{matrix.java.name}}
path: 'test-reports.tgz'
- name: Upload server log artifact (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: server-log-incontainer-jdk${{matrix.java.name}}
path: 'server-log.tgz'
# CDI TCKs in WildFly
CDI-TCK:
name: "CDI TCK - JDK ${{matrix.java.name}}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
java:
- {
name: "17",
java-version: 17,
}
- {
name: "21",
java-version: 21,
}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java.name }}
uses: actions/setup-java@v4.2.1
with:
java-version: ${{ matrix.java.java-version }}
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Download Patched WildFly
uses: actions/download-artifact@v4
with:
name: wildfly-patched-zip
path: .
- name: Extract WildFly
run: unzip wildfly.zip
- name: Build with Maven
run: |
JBOSS_HOME=`pwd`'/wildfly'
export JBOSS_HOME=`echo $JBOSS_HOME`
mvn clean verify -Dincontainer -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -f jboss-tck-runner/pom.xml
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: |
find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
find . -name 'server.log' -type f | tar -czf server-log.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-cdi-tck-jdk${{matrix.java.name}}
path: 'test-reports.tgz'
- name: Upload server log artifact (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: server-log-cdi-tck-jdk${{matrix.java.name}}
path: 'server-log.tgz'
# relaxed mode, w/ and w/o Wildfly, single JDK version
relaxed-mode-test:
name: "Relaxed mode testing - JDK ${{matrix.java.name}}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
java:
- { name: "17",
java-version: 17,
}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java.name }}
uses: actions/setup-java@v4.2.1
with:
java-version: ${{ matrix.java.java-version }}
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Download Patched WildFly
uses: actions/download-artifact@v4
with:
name: wildfly-patched-zip
path: .
- name: Extract WildFly
run: unzip wildfly.zip
- name: Build with Maven w/ WildFly
run: |
JBOSS_HOME=`pwd`'/wildfly'
export JBOSS_HOME=`echo $JBOSS_HOME`
mvn clean verify -Dincontainer -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dcdi.tck.suite.xml.file=src/test/tck/tck-tests.xml -Dadditional.vm.args="-Dorg.jboss.weld.construction.relaxed=true" -f jboss-tck-runner/pom.xml
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: |
find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
find . -name 'server.log' -type f | tar -czf server-log.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-cdi-tck-jdk${{matrix.java.name}}-incontainer-relaxed
path: 'test-reports.tgz'
- name: Upload server log artifact (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: server-log-cdi-tck-jdk${{matrix.java.name}}
path: 'server-log.tgz'
- name: Build with Maven, no WildFly
run: |
mvn clean verify -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dcdi.tck.suite.xml.file=src/test/tck/tck-tests.xml -Dorg.jboss.weld.construction.relaxed=true
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-cdi-tck-jdk${{matrix.java.name}}-relaxed
path: 'test-reports.tgz'
# Weld no-container tests, includes junit, Weld SE tests plus CDI TCKs and integration tests that don't require EE container
no-container-tests:
name: "Weld Tests w/o Container - JDK ${{matrix.java.name}}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
java:
- {
name: "17",
java-version: 17,
}
- {
name: "21",
java-version: 21,
}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java.name }}
uses: actions/setup-java@v4.2.1
with:
java-version: ${{ matrix.java.java-version }}
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Build with Maven
run: |
mvn clean verify -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-no-container-jdk${{matrix.java.name}}
path: 'test-reports.tgz'
# Weld Examples build and test, only JDK 17
examples-tests:
name: "Weld Examples build and test - JDK 17}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4.2.1
with:
java-version: 17
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Download Patched WildFly
uses: actions/download-artifact@v4
with:
name: wildfly-patched-zip
path: .
- name: Extract WildFly
run: unzip wildfly.zip
# Build examples, start WFLY in background, give it time to boot, run JSF numberguess tests, shutdown WFLY
- name: Build with Maven
run: |
mvn clean verify -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -f examples/pom.xml
JBOSS_HOME=`pwd`'/wildfly'
export JBOSS_HOME=`echo $JBOSS_HOME`
$JBOSS_HOME/bin/standalone.sh &
sleep 3s
WFLY_PID=$(jps | grep -- jboss-modules.jar | grep -Eo '[0-9]{1,}')
mvn clean wildfly:deploy -Dno-format -f examples/jsf/numberguess/pom.xml
mvn clean verify -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Pintegration-testing -f examples/jsf/numberguess/pom.xml
kill -9 $WFLY_PID
sleep 3s
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: |
find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
find . -name 'server.log' -type f | tar -czf server-log.tgz -T -
- name: Upload failed tests artifact (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-examples
path: 'test-reports.tgz'
- name: Upload server log artifact (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: server-log-examples
path: 'test-reports.tgz'
# CDI TCK for SE environment
CDI-TCK-SE:
name: "CDI TCK SE - JDK ${{matrix.java.name}}"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
java:
- {
name: "17",
java-version: 17,
}
- {
name: "21",
java-version: 21,
}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java.name }}
uses: actions/setup-java@v4.2.1
with:
java-version: ${{ matrix.java.java-version }}
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Build with Maven
run: |
mvn clean verify -Dincontainer=se -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -f jboss-tck-runner/pom.xml
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-cdi-tck-se-jdk${{matrix.java.name}}
path: 'test-reports.tgz'
# Weld SE/Servlet cooperation
weld-se-servlet-coop:
name: "Weld SE-Servlet Cooperation"
runs-on: ubuntu-latest
needs: initial-build
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4.2.1
with:
java-version: 17
distribution: 'temurin'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Build with Maven
run: |
mvn clean verify -Dincontainer=weld-se-coop -Dno-format -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -f environments/servlet/tests/tomcat/pom.xml
- name: Prepare failure archive (if maven failed)
if: failure()
shell: bash
run: find . -name '*-reports' -type d | tar -czf test-reports.tgz -T -
- name: Upload failure Archive (if maven failed)
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports-se-servlet-coop
path: 'test-reports.tgz'