Skip to content

Merge pull request #260 from irgaly/renovate/de.mannodermaus.junit5-a… #1075

Merge pull request #260 from irgaly/renovate/de.mannodermaus.junit5-a…

Merge pull request #260 from irgaly/renovate/de.mannodermaus.junit5-a… #1075

Workflow file for this run

# コミットごとに Unit Test 実行
name: Build & Test
on: push
jobs:
build-test:
strategy:
fail-fast: false
matrix:
platform: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.platform }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
- uses: ./.github/actions/gradle-cache
- name: JVM Build
run: |
./gradlew jvmTestClasses
- name: JS Browser / Nodejs Build
run: |
./gradlew jsTestClasses
- name: Android Build
if: contains(matrix.platform, 'ubuntu')
run: |
./gradlew packageDebugAndroidTest
- name: Linux Test Build
if: contains(matrix.platform, 'ubuntu')
run: |
./gradlew linkDebugTestLinuxX64
- name: Windows Build
if: contains(matrix.platform, 'windows')
run: |
C:/msys64/usr/bin/pacman -S --noconfirm mingw-w64-x86_64-sqlite3
./gradlew linkDebugTestMingwX64
- name: iOS Build
if: contains(matrix.platform, 'macos')
run: |
./gradlew linkDebugTestIosSimulatorArm64
- name: macOS Build
if: contains(matrix.platform, 'macos')
run: |
./gradlew linkDebugTestMacosArm64
- name: JVM Test
run: |
./gradlew jvmTest
- name: install python3 setuptools
if: contains(matrix.platform, 'macos')
run: |
# https://github.com/WiseLibs/better-sqlite3/pull/1100
brew install python-setuptools
- name: JS Nodejs Test
run: |
./gradlew jsNodeTest
- name: JS Browser
if: contains(matrix.platform, 'macos')
run: |
./gradlew jsBrowserTest
- name: Enable KVM group for Android Emulator
if: contains(matrix.platform, 'ubuntu')
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Android Test
uses: reactivecircus/android-emulator-runner@v2
if: contains(matrix.platform, 'ubuntu')
with:
api-level: 29
script: ./gradlew connectedDebugAndroidTest
- name: Linux Test
if: contains(matrix.platform, 'ubuntu')
run: |
./gradlew linuxX64Test
- name: Windows Test
if: contains(matrix.platform, 'windows')
run: |
cp -f C:/msys64/mingw64/bin/libsqlite3-0.dll kottage/build/bin/mingwX64/debugTest/
./gradlew mingwX64Test
- name: iOS Test
if: contains(matrix.platform, 'macos')
run: |
./gradlew iosSimulatorArm64Test
- name: macOS Test
if: contains(matrix.platform, 'macos')
run: |
./gradlew macosArm64Test
- name: Stop Gradle on Windows
if: contains(matrix.platform, 'windows')
run: |
# Windows で gradle cache を保存するために
# .gradle/caches/8.0/kotlin-dsl/kotlin-dsl.lock の使用中ロックを解除する
./gradlew --stop
- uses: actions/upload-artifact@v3
if: always()
with:
name: test-results-${{ matrix.platform }}
path: |
**/build/test-results/*/*.xml
**/build/reports/tests/*
publish-test-results:
needs: build-test
runs-on: ubuntu-latest
if: always()
steps:
- uses: actions/download-artifact@v3
- uses: EnricoMi/publish-unit-test-result-action@v2
with:
junit_files: "**/test-results/*/*.xml"
comment_mode: off