122 lines
3.3 KiB
YAML
122 lines
3.3 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: MorrisonCole/pr-lint-action@v1.6.1
|
|
with:
|
|
title-regex: '^([\w-/]+): \w+'
|
|
on-failed-regex-fail-action: false
|
|
on-failed-regex-request-changes: false
|
|
on-failed-regex-create-review: true
|
|
on-failed-regex-comment: "Your PR title should match the following regex: `%regex%`!"
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
validate:
|
|
name: Validate gradle wrapper
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2.4.2
|
|
- uses: gradle/wrapper-validation-action@v1.0.4
|
|
|
|
build:
|
|
name: Build
|
|
needs: [pr-lint, validate]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2.4.2
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v3.1.1
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 11
|
|
cache: 'gradle'
|
|
- 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@v2.4.2
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v3.1.1
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 11
|
|
cache: 'gradle'
|
|
- 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@v2.4.2
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v3.1.1
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 11
|
|
cache: 'gradle'
|
|
- 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@v2.4.2
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v3.1.1
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 11
|
|
cache: 'gradle'
|
|
- 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.2.1
|
|
with:
|
|
github-token: ${{ secrets.Owain }}
|