WELD-2778 Re-introduce EE parts of CDI TCKs into regular coverage #1495
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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-web.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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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' |