Skip to content

Commit a15b08d

Browse files
authored
Change workflow to seperate out tests (#3672)
1 parent 18c5e9f commit a15b08d

2 files changed

Lines changed: 60 additions & 28 deletions

File tree

.github/workflows/build-on-push.yml

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,34 +33,6 @@ jobs:
3333
- name: Build
3434
if: steps.filter.outputs.code == 'true'
3535
run: ./gradlew assemble
36-
- name: Run GameTests
37-
if: steps.filter.outputs.code == 'true'
38-
id: gametest
39-
continue-on-error: true
40-
run: ./gradlew runGameTestServer
41-
- name: Add "Tests Passed" label
42-
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'success'
43-
uses: actions-ecosystem/action-add-labels@v1
44-
with:
45-
labels: 'Tests: Passed'
46-
- name: Remove "Tests Failed" label
47-
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'success'
48-
uses: actions-ecosystem/action-remove-labels@v1
49-
with:
50-
labels: 'Tests: Failed'
51-
- name: Add "Tests Failed" label
52-
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
53-
uses: actions-ecosystem/action-add-labels@v1
54-
with:
55-
labels: 'Tests: Failed'
56-
- name: Remove "Tests Passed" label
57-
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
58-
uses: actions-ecosystem/action-remove-labels@v1
59-
with:
60-
labels: 'Tests: Passed'
61-
- name: Fail on GameTest failures
62-
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
63-
run: exit 1
6436
- name: Rename Jars
6537
if: steps.filter.outputs.code == 'true'
6638
run: for file in build/libs/*; do mv "$file" "${file/.jar/-${{ env.VERSION_SUFFIX }}.jar}"; done;

.github/workflows/test-on-push.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Test pull request on push
2+
3+
on:
4+
pull_request:
5+
paths: ['**']
6+
7+
# Cancel previous jobs if PR gets another push
8+
concurrency:
9+
group: PR-test-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
test:
14+
runs-on: ubuntu-latest
15+
env:
16+
VERSION_SUFFIX: "PR-${{ github.event.number }}"
17+
steps:
18+
- uses: actions/checkout@v4
19+
- name: Check Path Filter
20+
uses: dorny/paths-filter@v3
21+
id: filter
22+
with:
23+
filters: |
24+
code:
25+
- 'src/**'
26+
- '*.gradle'
27+
- 'gradle.properties'
28+
- 'gradlew*'
29+
- 'gradle/**'
30+
- name: Setup Build
31+
if: steps.filter.outputs.code == 'true'
32+
uses: ./.github/actions/build_setup
33+
- name: Run GameTests
34+
if: steps.filter.outputs.code == 'true'
35+
id: gametest
36+
continue-on-error: true
37+
run: ./gradlew runGameTestServer
38+
- name: Update “Tests Passed” / “Tests Failed” labels
39+
if: steps.filter.outputs.code == 'true' && github.event.pull_request.head.repo.full_name == github.repository
40+
uses: actions/github-script@v7
41+
with:
42+
script: |
43+
const [add, remove] = {
44+
success: ['Tests: Passed','Tests: Failed'],
45+
failure: ['Tests: Failed','Tests: Passed']
46+
}['${{ steps.gametest.outcome }}'];
47+
48+
const { owner, repo } = context.repo;
49+
const issue_number = context.payload.pull_request.number;
50+
51+
await github.rest.issues
52+
.addLabels({ owner, repo, issue_number, labels: [add] })
53+
.catch(() => {});
54+
55+
await github.rest.issues
56+
.removeLabel({ owner, repo, issue_number, name: remove })
57+
.catch(() => {});
58+
- name: Fail on GameTest failures
59+
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
60+
run: exit 1

0 commit comments

Comments
 (0)