diff --git a/.github/workflows/common-job.yml b/.github/workflows/common-job.yml new file mode 100644 index 0000000..53cc366 --- /dev/null +++ b/.github/workflows/common-job.yml @@ -0,0 +1,34 @@ +on: + workflow_call: + +jobs: + common: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + token: ${{ secrets.CI_TOKEN }} + submodules: true + + - name: Gradle cache + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Load GitHub submodule + run: ./gradlew copyConfig \ No newline at end of file diff --git a/.github/workflows/gradle-task.yml b/.github/workflows/gradle-task.yml new file mode 100644 index 0000000..b5cd4bb --- /dev/null +++ b/.github/workflows/gradle-task.yml @@ -0,0 +1,9 @@ +on: workflow_call + +jobs: + gradle-task: + needs: common + runs-on: ubuntu-latest + steps: + - name: Run Gradle Task + run: ./gradle ${{matrix.gradle.task}} \ No newline at end of file diff --git a/.github/workflows/pr_checker.yml b/.github/workflows/pr_checker.yml index 2c82537..e910492 100644 --- a/.github/workflows/pr_checker.yml +++ b/.github/workflows/pr_checker.yml @@ -11,111 +11,96 @@ permissions: pull-requests: write jobs: - common: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.CI_TOKEN }} - submodules: true - - - name: Gradle cache - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - cache: gradle - - checkstyle: - needs: common - runs-on: ubuntu-latest - steps: - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: load github submodule - run: ./gradlew copyConfig - - - name: Checkstyle Check - run: ./gradlew checkstyleMain checkstyleTest - - build: - needs: common - runs-on: ubuntu-latest - steps: - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: load github submodule - run: ./gradlew copyConfig - - - name: Build with Gradle - run: ./gradlew clean build - - test: - needs: common - runs-on: ubuntu-latest - steps: - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: load github submodule - run: ./gradlew copyConfig - - - name: Test with Gradle - run: ./gradlew test - - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() - with: - files: build/test-results/**/*.xml - - result-success: - needs: - - checkstyle - - build - - test - if: success() - runs-on: ubuntu-latest - steps: - - name: On Success!! Congratulations - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: '#53A551' - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_TITLE: 'Uni/PR Check S.U.C.C.E.S.S 🎉🎉🎉' - SLACK_ICON: ${{ github.event.org.avatar_url }} - MSG_MINIMAL: event,actions url, commit - SLACK_USERNAME: Uni-server - SLACK_MESSAGE: '${{ github.server_url }}/${{ github.repository }}/pull/${{ github.event.number}}' - - result-failure: - needs: - - checkstyle - - build - - test - if: failure() - runs-on: ubuntu-latest - steps: - - name: On Failed, Notify in Slack - if: ${{ failure() }} - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: '#ff0000' - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_TITLE: 'Uni/Server Debug build Fail❌ 에러를 확인해주세요' - SLACK_ICON: ${{ github.event.org.avatar_url }} - MSG_MINIMAL: event,actions url, commit - SLACK_USERNAME: Uni-server - SLACK_MESSAGE: '${{ github.server_url }}/${{ github.repository }}/pull/${{ github.event.number}}' + strategy: + matrix: + gradle-task: [checkstyleMain, clean build] + include: + - name: Common Setup + uses: ./.github/workflows/common.yml + + - name: Run Gradle Tasks + uses: ./.github/workflows/gradle-task.yml + +# checkstyle: +# needs: common +# runs-on: ubuntu-latest +# steps: +# - name: Grant execute permission for gradlew +# run: chmod +x gradlew +# +# - name: load github submodule +# run: ./gradlew copyConfig +# +# - name: Checkstyle Check +# run: ./gradlew checkstyleMain checkstyleTest +# +# build: +# needs: common +# runs-on: ubuntu-latest +# steps: +# - name: Grant execute permission for gradlew +# run: chmod +x gradlew +# +# - name: load github submodule +# run: ./gradlew copyConfig +# +# - name: Build with Gradle +# run: ./gradlew clean build +# +# test: +# needs: common +# runs-on: ubuntu-latest +# steps: +# - name: Grant execute permission for gradlew +# run: chmod +x gradlew +# +# - name: load github submodule +# run: ./gradlew copyConfig +# +# - name: Test with Gradle +# run: ./gradlew test +# +# - name: Publish Test Results +# uses: EnricoMi/publish-unit-test-result-action@v1 +# if: always() +# with: +# files: build/test-results/**/*.xml +# +# result-success: +# needs: +# - checkstyle +# - build +# - test +# if: success() +# runs-on: ubuntu-latest +# steps: +# - name: On Success!! Congratulations +# uses: rtCamp/action-slack-notify@v2 +# env: +# SLACK_COLOR: '#53A551' +# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} +# SLACK_TITLE: 'Uni/PR Check S.U.C.C.E.S.S 🎉🎉🎉' +# SLACK_ICON: ${{ github.event.org.avatar_url }} +# MSG_MINIMAL: event,actions url, commit +# SLACK_USERNAME: Uni-server +# SLACK_MESSAGE: '${{ github.server_url }}/${{ github.repository }}/pull/${{ github.event.number}}' +# +# result-failure: +# needs: +# - checkstyle +# - build +# - test +# if: failure() +# runs-on: ubuntu-latest +# steps: +# - name: On Failed, Notify in Slack +# if: ${{ failure() }} +# uses: rtCamp/action-slack-notify@v2 +# env: +# SLACK_COLOR: '#ff0000' +# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} +# SLACK_TITLE: 'Uni/Server Debug build Fail❌ 에러를 확인해주세요' +# SLACK_ICON: ${{ github.event.org.avatar_url }} +# MSG_MINIMAL: event,actions url, commit +# SLACK_USERNAME: Uni-server +# SLACK_MESSAGE: '${{ github.server_url }}/${{ github.repository }}/pull/${{ github.event.number}}'