(geronimo-mail) branch main updated: Add nightly Jakarta Mail TCK workflow
[email protected] Sun, 19 Jul 2026 09:43:04 +0000
| Newsgroups | gmane.comp.java.geronimo.cvs |
|---|---|
| Message-ID | <178445418490.687519.15971870136278103945@gitbox3-he-fi.apache.org> |
This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/geronimo-mail.git
The following commit(s) were added to refs/heads/main by this push:
new fe5e631 Add nightly Jakarta Mail TCK workflow
fe5e631 is described below
commit fe5e6314df9c0c189ad5507b62d811f2cb785dfd
Author: Richard Zowalla <[email protected]>
AuthorDate: Sun Jul 19 11:42:06 2026 +0200
Add nightly Jakarta Mail TCK workflow
---
.github/workflows/tck.yml | 85 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
diff --git a/.github/workflows/tck.yml b/.github/workflows/tck.yml
new file mode 100644
index 0000000..6a0c134
--- /dev/null
+++ b/.github/workflows/tck.yml
@@ -0,0 +1,85 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Jakarta Mail TCK
+
+on:
+ schedule:
+ # nightly, off the full hour to be kind to shared infrastructure
+ - cron: '17 2 * * *'
+ workflow_dispatch:
+
+concurrency:
+ # two concurrent TCK runs would race on nothing here (separate runners),
+ # but there is no point in running them in parallel either
+ group: jakarta-mail-tck
+ cancel-in-progress: false
+
+jobs:
+ tck:
+ # do not run the scheduled job on forks
+ if: github.repository == 'apache/geronimo-mail'
+ runs-on: ubuntu-latest
+ timeout-minutes: 40
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ # the JavaTest harness installs a SecurityManager, which JDK 24+
+ # no longer supports - keep this pinned to a 21 line
+ java-version: '21'
+ distribution: 'temurin'
+
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-tck-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-tck-m2
+
+ - name: Cache TCK distribution
+ uses: actions/cache@v4
+ with:
+ path: geronimo-mail_2.1_tck/target/jakarta-mail-tck-2.1.1.zip
+ # the zip is immutable; key on its expected checksum (see the tck pom)
+ key: jakarta-mail-tck-c749d4245acc51a53c8c3058782f3da6dfd87384a4485ce3fee3c8d36bd0df1b
+
+ - name: Build
+ run: mvn -B install -DskipTests
+
+ - name: Run the Jakarta Mail TCK
+ # Retried once: Apache James 3.9 occasionally writes the fragments of a
+ # FETCH literal response out of order under concurrent load, which makes
+ # exactly one fetch test per run fail with "Unknown server response: )".
+ # This is a server-side write race (client verified blameless on the
+ # wire); drop the retry once a fixed James version is picked up.
+ run: |
+ mvn -B verify -Ptck -pl geronimo-mail_2.1_tck || {
+ echo "::warning::TCK run failed - retrying once (known Apache James 3.9 response write race)"
+ rm -rf geronimo-mail_2.1_tck/target/mail-tck/JTwork geronimo-mail_2.1_tck/target/mail-tck/JTreport
+ mvn -B verify -Ptck -pl geronimo-mail_2.1_tck
+ }
+
+ - name: Upload TCK report
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ name: jtreport
+ path: geronimo-mail_2.1_tck/target/mail-tck/JTreport/
+ if-no-files-found: ignore
+ retention-days: 14