133 lines
3.6 KiB
YAML
133 lines
3.6 KiB
YAML
name: OpenOSRS - CI (PR)
|
|
|
|
on:
|
|
pull_request:
|
|
types: ['opened', 'edited', 'reopened', 'synchronize']
|
|
|
|
jobs:
|
|
pr-lint:
|
|
name: PR title
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: PR title lint
|
|
if: github.event_name == 'pull_request'
|
|
uses: seferov/pr-lint-action@v1.1.1
|
|
with:
|
|
title-regex: '^([\w-/ ]+): [\w ]+'
|
|
|
|
validate:
|
|
name: Validate gradle wrapper
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: gradle/wrapper-validation-action@v1
|
|
|
|
build:
|
|
name: Build
|
|
needs: [pr-lint, validate]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.gradle/caches
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 11
|
|
- name: Assembling
|
|
run: ./gradlew assemble --console=plain
|
|
- name: Building
|
|
run: ./gradlew build --stacktrace -x test -x checkstyleMain -x checkstyleTest --console=plain
|
|
|
|
test:
|
|
name: Test
|
|
needs: [pr-lint, validate]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.gradle/caches
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 11
|
|
- name: Assembling
|
|
run: ./gradlew assemble --console=plain
|
|
- name: Testing
|
|
run: ./gradlew test -x deobfuscator:test --stacktrace --console=plain
|
|
|
|
checkstyleMain:
|
|
name: Checkstyle main
|
|
needs: [pr-lint, validate]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.gradle/caches
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 11
|
|
- name: Assembling
|
|
run: ./gradlew assemble --console=plain
|
|
- name: Checking code conventions
|
|
run: ./gradlew checkstyleMain --console=plain
|
|
|
|
checkstyleTest:
|
|
name: Checkstyle test
|
|
needs: [pr-lint, validate]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.gradle/caches
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 11
|
|
- name: Assembling
|
|
run: ./gradlew assemble --console=plain
|
|
- name: Checking code conventions
|
|
run: ./gradlew checkstyleTest --console=plain
|
|
|
|
approve:
|
|
name: Approve
|
|
needs: [build, test, checkstyleMain, checkstyleTest]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Approve pull request
|
|
if: github.event_name == 'pull_request' && github.actor == 'OpenOSRS'
|
|
uses: hmarr/auto-approve-action@v2.0.0
|
|
with:
|
|
github-token: ${{ secrets.Owain }}
|