Migrate database infrastructure to Jooq #1958
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: 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" |