Skip to content

Update eclipse-temurin Docker tag #79

Update eclipse-temurin Docker tag

Update eclipse-temurin Docker tag #79

Workflow file for this run

name: Test
on:
pull_request:
paths-ignore:
- 'README.md'
- 'CODE_OF_CONDUCT.md'
- 'CONTRIBUTING.md'
- 'LICENSE'
- 'SECURITY.md'
- 'docs/**'
- '.github/**'
- '!.github/workflows/test.yml'
push:
branches:
- main
tags:
- '[0-9]+.[0-9]+.[0-9]+'
paths-ignore:
- 'README.md'
- 'CODE_OF_CONDUCT.md'
- 'CONTRIBUTING.md'
- 'LICENSE'
- 'SECURITY.md'
- 'docs/**'
- '.github/**'
- '!.github/workflows/test.yml'
release:
types:
- created
# Limit the number of concurrent runs to one per PR
# If a run is already in progress, cancel it
# If the run is not for a PR, then this limit does not apply
concurrency:
group: test-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
# Keep in sync with codeql-analysis.yml and build.yml
env:
CI: true
node: 24
java: 25
# Run all tests for non-draft pull-requests or the default branch. Otherwise, only module-affected tests are run.
RUN_ALL_TESTS: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event.repository.default_branch == github.ref_name }}
jobs:
server-style:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '${{ env.java }}'
cache: 'gradle'
- name: Java Code Style
run: ./gradlew spotlessCheck
- name: Java Documentation
run: ./gradlew checkstyleMain
if: success() || failure()
client-style:
runs-on: ubuntu-latest
timeout-minutes: 30
defaults:
run:
working-directory: src/main/webapp
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '${{ env.node }}'
cache: 'npm'
cache-dependency-path: 'src/main/webapp/package-lock.json'
- name: Install Dependencies
run: npm ci
- name: TypeScript Formatting
run: npm run prettier:check
- name: TypeScript Code Style
run: npm run lint
if: success() || failure()
client-compilation:
runs-on: ubuntu-latest
timeout-minutes: 5
defaults:
run:
working-directory: src/main/webapp
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '${{ env.node }}'
cache: 'npm'
cache-dependency-path: 'src/main/webapp/package-lock.json'
- name: Install Dependencies
run: npm ci
- name: Compile TypeScript Files With Typechecking
run: npm run compile:ts
client-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
defaults:
run:
working-directory: src/main/webapp
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '${{ env.node }}'
cache: 'npm'
cache-dependency-path: 'src/main/webapp/package-lock.json'
- name: Install Dependencies
run: npm ci
- name: Run Client Tests
run: npm test
server-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '${{ env.java }}'
cache: 'gradle'
- name: Run Tests with Coverage
run: ./gradlew test jacocoTestReport
- name: Upload Coverage Report
uses: actions/upload-artifact@v4
if: always()
with:
name: coverage-report
path: build/reports/jacoco/test/html/
retention-days: 14
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: build/reports/tests/test/
retention-days: 14