Skip to content

Commit 377d15e

Browse files
authored
Auto JSON update (#164)
* chore: update Github Actions * feat: add auto update JSON module
1 parent fb41737 commit 377d15e

6 files changed

Lines changed: 85 additions & 15 deletions

File tree

‎.github/workflows/codeql.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
5757
steps:
5858
- name: Checkout repository
59-
uses: actions/checkout@v4
59+
uses: actions/checkout@v7
6060
with:
6161
submodules: 'recursive'
6262

‎.github/workflows/dotnet.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ jobs:
1818
runs-on: ubuntu-latest
1919

2020
steps:
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v7
2222
- name: Setup .NET
23-
uses: actions/setup-dotnet@v4
23+
uses: actions/setup-dotnet@v5
2424
with:
2525
dotnet-version: 10.0.x
2626
- name: download JSON submodule
@@ -35,7 +35,7 @@ jobs:
3535
run: dotnet test --no-build --verbosity normal
3636

3737
- name: Upload artifacts
38-
uses: actions/upload-artifact@v4
38+
uses: actions/upload-artifact@v7
3939
with:
4040
retention-days: 5
4141
name: openapi-schemas
@@ -45,7 +45,7 @@ jobs:
4545
runs-on: ubuntu-latest
4646

4747
steps:
48-
- uses: actions/checkout@v4
48+
- uses: actions/checkout@v7
4949
with:
5050
submodules: true
5151
- name: Set up Docker Buildx

‎.github/workflows/fly.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
concurrency: deploy-group # optional: ensure only one action runs at a time
1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v7
1818

1919
- uses: superfly/flyctl-actions/setup-flyctl@master
2020

‎.github/workflows/pages.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ jobs:
2525
build:
2626
runs-on: ubuntu-latest
2727
steps:
28-
- uses: actions/checkout@v4
28+
- uses: actions/checkout@v7
2929
- name: Initial static JSON schema submodule
3030
run: git submodule update --init ./src/Helldivers-2-Models/json
3131
- name: Setup .NET
32-
uses: actions/setup-dotnet@v4
32+
uses: actions/setup-dotnet@v5
3333
with:
3434
dotnet-version: 10.0.x
3535
- name: Generate OpenAPI JSON files
@@ -54,11 +54,11 @@ jobs:
5454
name: 'docs'
5555
path: '.'
5656
- name: Setup Pages
57-
uses: actions/configure-pages@v4
57+
uses: actions/configure-pages@v6
5858
- name: Upload artifact
59-
uses: actions/upload-pages-artifact@v3
59+
uses: actions/upload-pages-artifact@v5
6060
with:
6161
path: '.'
6262
- name: Deploy to GitHub Pages
6363
id: deployment
64-
uses: actions/deploy-pages@v4
64+
uses: actions/deploy-pages@v5

‎.github/workflows/sync.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ jobs:
1818
runs-on: ubuntu-latest
1919

2020
steps:
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v7
2222

2323
- name: Setup .NET
24-
uses: actions/setup-dotnet@v4
24+
uses: actions/setup-dotnet@v5
2525
with:
2626
dotnet-version: '10.0.x'
2727

@@ -39,7 +39,7 @@ jobs:
3939
4040
- name: Upload artifacts
4141
if: always()
42-
uses: actions/upload-artifact@v4
42+
uses: actions/upload-artifact@v7
4343
with:
4444
name: sync-artifacts
4545
path: |
@@ -58,7 +58,7 @@ jobs:
5858
5959
- name: Comment on PR on failure
6060
if: ${{ steps.run_sync.outcome == 'failure' && github.event_name == 'pull_request' }}
61-
uses: peter-evans/create-or-update-comment@v4
61+
uses: peter-evans/create-or-update-comment@v5
6262
with:
6363
token: ${{ secrets.GITHUB_TOKEN }}
6464
issue-number: ${{ github.event.pull_request.number }}

‎.github/workflows/update-json.yml‎

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Update JSON data submodule
2+
3+
on:
4+
repository_dispatch:
5+
types: [json-data-updated]
6+
workflow_dispatch: {}
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
issues: write
12+
13+
jobs:
14+
update:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v7
18+
with:
19+
submodules: recursive
20+
fetch-depth: 0
21+
22+
- name: Update submodule to latest
23+
id: update
24+
run: |
25+
git submodule update --remote --merge src/Helldivers-2-Models/json
26+
if git diff --quiet; then
27+
echo "changed=false" >> "$GITHUB_OUTPUT"
28+
else
29+
echo "changed=true" >> "$GITHUB_OUTPUT"
30+
fi
31+
32+
- name: Setup .NET
33+
if: steps.update.outputs.changed == 'true'
34+
uses: actions/setup-dotnet@v5
35+
with:
36+
dotnet-version: '10.0.x' # match whatever your Directory.Build.props/global.json targets
37+
38+
- name: Build and test
39+
if: steps.update.outputs.changed == 'true'
40+
id: build
41+
continue-on-error: true
42+
run: |
43+
dotnet restore Helldivers-2.sln
44+
dotnet build Helldivers-2.sln --no-restore --configuration Release
45+
dotnet test Helldivers-2.sln --no-build --configuration Release
46+
47+
- name: Open PR if build succeeded
48+
if: steps.update.outputs.changed == 'true' && steps.build.outcome == 'success'
49+
uses: peter-evans/create-pull-request@v8
50+
with:
51+
commit-message: "chore: update JSON data submodule"
52+
title: "chore: update JSON data submodule"
53+
body: |
54+
Automated update of `src/Helldivers-2-Models/json` to the latest commit on `master`.
55+
Build and tests passed.
56+
branch: auto/update-json-submodule
57+
delete-branch: true
58+
59+
- name: Open issue if build failed
60+
if: steps.update.outputs.changed == 'true' && steps.build.outcome == 'failure'
61+
uses: actions/github-script@v9
62+
with:
63+
script: |
64+
await github.rest.issues.create({
65+
owner: context.repo.owner,
66+
repo: context.repo.repo,
67+
title: "Build failure after JSON submodule auto-update",
68+
body: `The automated submodule update to \`src/Helldivers-2-Models/json\` broke the build.\n\nWorkflow run: ${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
69+
labels: ["automated", "build-failure"]
70+
})

0 commit comments

Comments
 (0)