Skip to content

Commit 148bbb5

Browse files
author
Sergey Pyatykh
committed
Merge branch 'master' into biojava-genome-migration-to-junit5
2 parents fdafbb7 + d6a9604 commit 148bbb5

19 files changed

Lines changed: 2104 additions & 163 deletions

File tree

‎.github/workflows/nightly.yml‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Nightly Integration Tests
2+
3+
# The integration tests reach out to CATH, ECOD, RCSB, EBI, UniProt and others.
4+
# That makes them valuable - they are how we find out that an upstream service
5+
# has changed a URL, a format or a redirect - but it also makes them unsuitable
6+
# as a gate on pull requests, because an outage anywhere blocks every
7+
# contributor. Running them on a schedule keeps the coverage while decoupling it
8+
# from people's ability to merge.
9+
on:
10+
schedule:
11+
# 03:17 UTC daily. Off the hour deliberately: scheduled jobs that ask for
12+
# exactly midnight queue behind everybody else's.
13+
- cron: '17 3 * * *'
14+
# Also runnable by hand, e.g. to confirm an upstream service is back.
15+
workflow_dispatch:
16+
17+
permissions:
18+
contents: read # to fetch code (actions/checkout)
19+
20+
jobs:
21+
integrationtest:
22+
runs-on: ubuntu-latest
23+
# These tests download large files from servers we do not control; the
24+
# default 6 hour limit is far more than they need and far more than we want
25+
# to spend if one of them hangs.
26+
timeout-minutes: 90
27+
strategy:
28+
matrix:
29+
# One JDK only. The point of this run is to exercise the network paths,
30+
# not the language level, which the pull request build already covers
31+
# across 11, 17 and 21.
32+
java: [21]
33+
fail-fast: false
34+
name: Integration tests, JDK ${{ matrix.java }}
35+
36+
steps:
37+
- uses: actions/checkout@v4
38+
- name: Set up JDK
39+
uses: actions/setup-java@v4
40+
with:
41+
distribution: 'oracle'
42+
java-version: ${{ matrix.java }}
43+
- name: Build and run integration tests
44+
run: mvn verify --no-transfer-progress
45+
- name: Upload surefire reports
46+
# Kept on failure so an upstream break can be diagnosed after the fact:
47+
# GitHub expires run logs after 90 days, and these reports carry the
48+
# stack traces that say which service misbehaved.
49+
if: failure()
50+
uses: actions/upload-artifact@v4
51+
with:
52+
name: surefire-reports
53+
path: '**/target/surefire-reports/**'
54+
retention-days: 30

‎.github/workflows/pull_request.yml‎

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,14 @@ jobs:
3030
with:
3131
distribution: 'oracle'
3232
java-version: ${{ matrix.java }}
33-
- name: Build, test and integration test
34-
run: mvn verify --no-transfer-progress
33+
- name: Build and test (no integration tests)
34+
# Integration tests are excluded here and run nightly instead, see
35+
# nightly.yml. They depend on CATH, ECOD, RCSB, EBI and others being up
36+
# and responsive, so running them on every pull request means a third
37+
# party having a bad day blocks contributors, and a real regression
38+
# cannot be told apart from the resulting noise. Master Build already
39+
# excludes them for the same reason.
40+
run: mvn verify -pl '!biojava-integrationtest' --no-transfer-progress
3541

3642
# Note that 11 is not available in openjdk. So we need to do it with the Zulu distribution (see https://github.com/actions/setup-java)
3743
# When we drop 11, it will be safe to drop the copy-pasted workflow excerpt below
@@ -54,5 +60,11 @@ jobs:
5460
with:
5561
distribution: 'zulu'
5662
java-version: ${{ matrix.java }}
57-
- name: Build, test and integration test
58-
run: mvn verify --no-transfer-progress
63+
- name: Build and test (no integration tests)
64+
# Integration tests are excluded here and run nightly instead, see
65+
# nightly.yml. They depend on CATH, ECOD, RCSB, EBI and others being up
66+
# and responsive, so running them on every pull request means a third
67+
# party having a bad day blocks contributors, and a real regression
68+
# cannot be told apart from the resulting noise. Master Build already
69+
# excludes them for the same reason.
70+
run: mvn verify -pl '!biojava-integrationtest' --no-transfer-progress

0 commit comments

Comments
 (0)