Skip to content

Migrate database infrastructure to Jooq #1958

Migrate database infrastructure to Jooq

Migrate database infrastructure to Jooq #1958

Workflow file for this run

name: Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
concurrency:
group: tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
DATABASE_URL: "sqlite::memory:"
jobs:
file-changes:
runs-on: ubuntu-latest
outputs:
android: ${{ steps.android.outputs.any_changed }}
client-core: ${{ steps.client-core.outputs.any_changed }}
client-ui: ${{ steps.client-ui.outputs.any_changed }}
data-models: ${{ steps.data-models.outputs.any_changed }}
ios: ${{ steps.ios.outputs.any_changed }}
web: ${{ steps.web.outputs.any_changed }}
server: ${{ steps.server.outputs.any_changed }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- name: Get changed files
id: android
uses: tj-actions/changed-files@v40
with:
files: |
build.gradle.kts
gradle/libsCommon.versions.toml
gradle/libsClient.versions.toml
gradle/libsAndroid.versions.toml
**/client/android/**
**/client/core/src/commonMain/**
**/client/core/src/commonTest/**
**/client/core/src/androidMain/**
**/client/data-models/**
- name: Get changed files
id: client-core
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
gradle/libsClient.versions.toml
**/client/core/**
**/client/data-models/**
- name: Get changed files
id: client-ui
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
gradle/libsClient.versions.toml
gradle/libsAndroid.versions.toml
**/client/ui/**
- name: Get changed files
id: data-models
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
**/client/data-models/**
- name: Get changed files
id: server
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
gradle/libsServer.versions.toml
**/client/data-models/**
**/server/**
- name: Get changed files
id: ios
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
gradle/libsClient.versions.toml
**/client/ios/**
**/client/core/src/commonMain/**
**/client/core/src/commonTest/**
**/client/core/src/iosMain/**
**/client/data-models/**
- name: Get changed files
id: web
uses: tj-actions/changed-files@v40
with:
files: |
gradle/libsCommon.versions.toml
gradle/libsClient.versions.toml
gradle/kotlin-js-store/**
**/client/web/**
**/client/core/src/commonMain/**
**/client/core/src/commonTest/**
**/client/core/src/androidMain/**
**/client/data-models/**
client-core-tests:
needs: [ file-changes ]
if: needs.file-changes.outputs.client-core == 'true' || github.ref_name == 'main'
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ] #windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Cache Build files
uses: actions/cache@v3
if: ${{ !startsWith(matrix.os, 'windows') }}
with:
path: |
~/.konan
~/.gradle
key: ${{ runner.os }}-${{ hashFiles('gradle.properties') }}-v2
- uses: browser-actions/setup-firefox@v1
id: install-firefox
- name: Set FIREFOX_BIN environment variable
run: echo "FIREFOX_BIN=${{ steps.install-firefox.outputs.firefox-path }}" >> $GITHUB_ENV
- uses: gradle/gradle-build-action@v2
name: All Tests
with:
arguments: client:core:allTests client:core:koverXmlReport
- name: Archive Reports
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: reports
path: '**/build/reports/*'
- name: Publish Unit Test Results
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: '**/TEST-*.xml'
client-ui-tests:
needs: [ file-changes ]
if: needs.file-changes.outputs.client-ui == 'true' || github.ref_name == 'main'
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ] #windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Cache Build files
uses: actions/cache@v3
if: ${{ !startsWith(matrix.os, 'windows') }}
with:
path: |
~/.konan
~/.gradle
key: ${{ runner.os }}-${{ hashFiles('gradle.properties') }}-v2
- uses: gradle/gradle-build-action@v2
name: All Tests
with:
arguments: client:ui:allTests client:ui:koverXmlReport
- name: Archive Reports
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: reports
path: '**/build/reports/*'
- name: Publish Unit Test Results
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: '**/TEST-*.xml'
client-android-tests:
needs: [ file-changes ]
if: needs.file-changes.outputs.android == 'true' || github.ref_name == 'main'
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Cache Build files
uses: actions/cache@v3
with:
path: |
~/.konan
~/.gradle
key: ${{ runner.os }}-${{ hashFiles('gradle.properties') }}-v2
- uses: reactivecircus/android-emulator-runner@v2
name: Test Android Targets
with:
api-level: 30
target: google_apis
arch: x86_64
profile: Nexus 6
script: ./gradlew connectedCheck
- name: Archive Reports
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: reports
path: '**/build/reports/*'
- name: Publish Unit Test Results
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: '**/TEST-*.xml'
client-web-tests:
needs: [ file-changes ]
if: needs.file-changes.outputs.web == 'true' || github.ref_name == 'main'
strategy:
matrix:
os: [ ubuntu-latest ] # macos-latest, windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Cache Build files
uses: actions/cache@v3
if: ${{ !startsWith(matrix.os, 'windows') }}
with:
path: |
~/.konan
~/.gradle
key: ${{ runner.os }}-${{ hashFiles('gradle.properties') }}-v2
- uses: browser-actions/setup-firefox@v1
id: install-firefox
- name: Set FIREFOX_BIN environment variable
run: echo "FIREFOX_BIN=${{ steps.install-firefox.outputs.firefox-path }}" >> $GITHUB_ENV
- uses: gradle/gradle-build-action@v2
name: Web Tests
with:
arguments: client:web:jsBrowserTest client:web:koverXmlReport
- name: Archive Reports
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: reports
path: '**/build/reports/*'
- name: Publish Unit Test Results
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: '**/TEST-*.xml'
server-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Cache Build files
uses: actions/cache@v3
with:
path: |
~/.konan
~/.gradle
key: ${{ runner.os }}-${{ hashFiles('gradle.properties') }}-v2
- uses: gradle/gradle-build-action@v2
name: Run Server Tests
with:
arguments: >
server:application:test server:application:koverXmlReport
server:db-models:test server:db-models:koverXmlReport
server:library-manager:test server:library-manager:koverXmlReport
server:metadata-manager:test server:metadata-manager:koverXmlReport
server:shared:test server:shared:koverXmlReport
server:stream-service:test server:stream-service:koverXmlReport
- name: Archive Reports
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: reports
path: '**/build/reports/*'
- name: Publish Unit Test Results
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: '**/TEST-*.xml'
upload-kover-reports:
runs-on: ubuntu-latest
needs: [ server-tests, client-core-tests, client-web-tests ]
steps:
- uses: actions/checkout@v4
- name: Download kover reports
uses: actions/download-artifact@v3
with:
name: reports
- uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: "**/build/reports/kover/project-xml/report.xml"