2023-11-30 11:04:30 +00:00
|
|
|
name: PullRequest Merge Check
|
|
|
|
|
2023-11-30 09:49:29 +00:00
|
|
|
on:
|
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- "develop"
|
2024-06-17 13:51:43 +00:00
|
|
|
types:
|
|
|
|
- opened # default
|
|
|
|
- reopened # default
|
|
|
|
- synchronize # default
|
|
|
|
- ready_for_review # 必要
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
checks: write
|
|
|
|
id-token: write
|
|
|
|
pull-requests: write
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
setup:
|
2023-11-30 11:04:30 +00:00
|
|
|
name: Setup
|
2024-06-17 13:51:43 +00:00
|
|
|
if: github.event.pull_request.draft == false
|
2023-11-30 09:49:29 +00:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2024-05-07 13:23:54 +00:00
|
|
|
uses: actions/checkout@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Gradle Wrapper Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: ~/.gradle/wrapper
|
|
|
|
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
|
|
|
|
|
|
|
- name: Dependencies Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/cache/jars-*
|
|
|
|
~/.gradle/caches/transforms-*
|
|
|
|
~/.gradle/caches/modules-*
|
2023-11-30 11:01:25 +00:00
|
|
|
key: gradle-dependencies-${{ hashFiles('**/*.gradle.kts') }}
|
|
|
|
restore-keys: gradle-dependencies-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/caches/build-cache-*
|
|
|
|
~/.gradle/caches/[0-9]*.*
|
|
|
|
.gradle
|
2023-11-30 11:01:25 +00:00
|
|
|
key: ${{ runner.os }}-gradle-build-${{ github.workflow }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-gradle-build-${{ github.workflow }}-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Build Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
build
|
2023-12-03 08:14:22 +00:00
|
|
|
key: gradle-build-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('**/*.kt') }}-${{ github.sha }}
|
2023-11-30 09:49:29 +00:00
|
|
|
|
2024-02-04 07:19:33 +00:00
|
|
|
- name: Set up JDK 21
|
2024-05-07 13:26:23 +00:00
|
|
|
uses: actions/setup-java@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-02-04 07:19:33 +00:00
|
|
|
java-version: '21'
|
2023-11-30 09:49:29 +00:00
|
|
|
distribution: 'temurin'
|
|
|
|
- name: Build
|
2024-06-18 07:39:07 +00:00
|
|
|
uses: gradle/gradle-build-action@v3.4.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-05-11 15:19:09 +00:00
|
|
|
arguments: :hideout-core:testClasses
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
unit-test:
|
2023-11-30 11:04:30 +00:00
|
|
|
name: Unit Test
|
2023-11-30 09:49:29 +00:00
|
|
|
needs: [ setup ]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2024-05-07 13:23:54 +00:00
|
|
|
uses: actions/checkout@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Gradle Wrapper Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: ~/.gradle/wrapper
|
|
|
|
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
|
|
|
|
|
|
|
- name: Dependencies Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/cache/jars-*
|
|
|
|
~/.gradle/caches/transforms-*
|
|
|
|
~/.gradle/caches/modules-*
|
2023-11-30 11:01:25 +00:00
|
|
|
key: gradle-dependencies-${{ hashFiles('**/*.gradle.kts') }}
|
|
|
|
restore-keys: gradle-dependencies-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/caches/build-cache-*
|
|
|
|
~/.gradle/caches/[0-9]*.*
|
|
|
|
.gradle
|
2023-11-30 11:01:25 +00:00
|
|
|
key: ${{ runner.os }}-gradle-build-${{ github.workflow }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-gradle-build-${{ github.workflow }}-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Build Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
build
|
|
|
|
key: gradle-build-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('src') }}-${{ github.sha }}
|
|
|
|
|
2024-02-04 07:19:33 +00:00
|
|
|
- name: Set up JDK 21
|
2024-05-07 13:26:23 +00:00
|
|
|
uses: actions/setup-java@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-02-04 07:19:33 +00:00
|
|
|
java-version: '21'
|
2023-11-30 09:49:29 +00:00
|
|
|
distribution: 'temurin'
|
|
|
|
|
|
|
|
- name: Unit Test
|
2024-06-18 07:39:07 +00:00
|
|
|
uses: gradle/gradle-build-action@v3.4.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-05-11 15:19:09 +00:00
|
|
|
arguments: :hideout-core:test
|
2023-11-30 09:49:29 +00:00
|
|
|
|
2023-11-30 10:51:57 +00:00
|
|
|
- name: Save Test Report
|
2023-12-03 07:22:06 +00:00
|
|
|
if: always()
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache/save@v4
|
2023-11-30 10:51:57 +00:00
|
|
|
with:
|
|
|
|
path: build/test-results
|
|
|
|
key: unit-test-report-${{ github.sha }}
|
|
|
|
|
2023-11-30 09:49:29 +00:00
|
|
|
coverage:
|
2023-11-30 11:04:30 +00:00
|
|
|
name: Coverage
|
2023-11-30 09:49:29 +00:00
|
|
|
needs: [ setup ]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2024-05-07 13:23:54 +00:00
|
|
|
uses: actions/checkout@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Gradle Wrapper Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: ~/.gradle/wrapper
|
|
|
|
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
|
|
|
|
|
|
|
- name: Dependencies Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/cache/jars-*
|
|
|
|
~/.gradle/caches/transforms-*
|
|
|
|
~/.gradle/caches/modules-*
|
2023-11-30 11:01:25 +00:00
|
|
|
key: gradle-dependencies-${{ hashFiles('**/*.gradle.kts') }}
|
|
|
|
restore-keys: gradle-dependencies-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/caches/build-cache-*
|
|
|
|
~/.gradle/caches/[0-9]*.*
|
|
|
|
.gradle
|
2023-11-30 11:01:25 +00:00
|
|
|
key: ${{ runner.os }}-gradle-build-${{ github.workflow }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-gradle-build-${{ github.workflow }}-
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Build Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
build
|
|
|
|
key: gradle-build-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('src') }}-${{ github.sha }}
|
|
|
|
|
2024-02-04 07:19:33 +00:00
|
|
|
- name: Set up JDK 21
|
2024-05-07 13:26:23 +00:00
|
|
|
uses: actions/setup-java@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-02-04 07:19:33 +00:00
|
|
|
java-version: '21'
|
2023-11-30 09:49:29 +00:00
|
|
|
distribution: 'temurin'
|
|
|
|
|
|
|
|
- name: Run Kover
|
2024-06-18 07:39:07 +00:00
|
|
|
uses: gradle/gradle-build-action@v3.4.2
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2024-06-16 07:38:29 +00:00
|
|
|
arguments: :hideout-core:koverXmlReport --rerun-tasks
|
2023-11-30 09:49:29 +00:00
|
|
|
|
|
|
|
- name: Add coverage report to PR
|
|
|
|
if: always()
|
|
|
|
id: kover
|
2023-12-14 07:20:10 +00:00
|
|
|
uses: madrapps/jacoco-report@v1.6.1
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2023-12-14 07:24:50 +00:00
|
|
|
paths: |
|
2024-05-18 07:18:54 +00:00
|
|
|
${{ github.workspace }}/hideout-core/build/reports/kover/report.xml
|
2023-11-30 09:49:29 +00:00
|
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
title: Code Coverage
|
|
|
|
update-comment: true
|
|
|
|
min-coverage-overall: 80
|
|
|
|
min-coverage-changed-files: 80
|
|
|
|
coverage-counter-type: LINE
|
|
|
|
|
|
|
|
report-tests:
|
2023-11-30 11:04:30 +00:00
|
|
|
name: Report Tests
|
2023-11-30 09:49:29 +00:00
|
|
|
if: success() || failure()
|
2024-06-16 07:30:29 +00:00
|
|
|
needs: [ unit-test ]
|
2023-11-30 09:49:29 +00:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
2023-11-30 10:51:57 +00:00
|
|
|
- name: Restore Test Report
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache/restore@v4
|
2023-11-30 10:28:03 +00:00
|
|
|
with:
|
2023-11-30 10:51:57 +00:00
|
|
|
path: build/test-results
|
|
|
|
key: unit-test-report-${{ github.sha }}
|
|
|
|
|
2023-11-30 09:49:29 +00:00
|
|
|
- name: JUnit Test Report
|
2024-05-06 14:03:47 +00:00
|
|
|
uses: mikepenz/action-junit-report@v4
|
2023-11-30 09:49:29 +00:00
|
|
|
with:
|
2023-11-30 10:35:39 +00:00
|
|
|
report_paths: '**/TEST-*.xml'
|
|
|
|
|
|
|
|
lint:
|
2023-11-30 11:04:30 +00:00
|
|
|
name: Lint
|
2023-11-30 10:35:39 +00:00
|
|
|
needs: [ setup ]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2024-05-07 13:23:54 +00:00
|
|
|
uses: actions/checkout@v4
|
2023-11-30 10:35:39 +00:00
|
|
|
|
|
|
|
- name: Gradle Wrapper Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
|
|
|
path: ~/.gradle/wrapper
|
|
|
|
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
|
|
|
|
|
|
|
- name: Dependencies Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/cache/jars-*
|
|
|
|
~/.gradle/caches/transforms-*
|
|
|
|
~/.gradle/caches/modules-*
|
2023-11-30 11:01:25 +00:00
|
|
|
key: gradle-dependencies-${{ hashFiles('**/*.gradle.kts') }}
|
|
|
|
restore-keys: gradle-dependencies-
|
2023-11-30 10:35:39 +00:00
|
|
|
|
|
|
|
- name: Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/caches/build-cache-*
|
|
|
|
~/.gradle/caches/[0-9]*.*
|
|
|
|
.gradle
|
2023-11-30 11:01:25 +00:00
|
|
|
key: ${{ runner.os }}-gradle-build-${{ github.workflow }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-gradle-build-${{ github.workflow }}-
|
2023-11-30 10:35:39 +00:00
|
|
|
|
|
|
|
- name: Build Cache
|
2024-05-07 13:21:21 +00:00
|
|
|
uses: actions/cache@v4.0.2
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
build
|
|
|
|
key: gradle-build-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('src') }}-${{ github.sha }}
|
|
|
|
|
2024-02-04 07:19:33 +00:00
|
|
|
- name: Set up JDK 21
|
2024-05-07 13:26:23 +00:00
|
|
|
uses: actions/setup-java@v4
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
2024-02-04 07:19:33 +00:00
|
|
|
java-version: '21'
|
2023-11-30 10:35:39 +00:00
|
|
|
distribution: 'temurin'
|
|
|
|
|
|
|
|
- name: Build with Gradle
|
2024-06-18 09:58:54 +00:00
|
|
|
uses: gradle/gradle-build-action@66535aaf56f831b35e3a8481c9c99b665b84dd45
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
2024-05-11 15:19:09 +00:00
|
|
|
arguments: :hideout-core:detektMain
|
2023-11-30 10:35:39 +00:00
|
|
|
|
2024-06-17 13:31:22 +00:00
|
|
|
- name: Auto Commit
|
2023-11-30 10:35:39 +00:00
|
|
|
if: ${{ always() }}
|
2024-06-17 13:31:22 +00:00
|
|
|
uses: stefanzweifel/git-auto-commit-action@v5
|
2023-11-30 10:35:39 +00:00
|
|
|
with:
|
2024-06-17 13:31:22 +00:00
|
|
|
commit_message: "style: fix lint (CI)"
|