-
Notifications
You must be signed in to change notification settings - Fork 95
129 lines (112 loc) · 3.54 KB
/
graphql-schema.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: NerdGraph Schema Diff
on:
workflow_dispatch:
pull_request:
branches: [main]
# schedule:
# - cron: '5 5 * * 1'
jobs:
downloadSchema:
runs-on: ubuntu-latest
steps:
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21.x
- name: Checkout code
uses: actions/checkout@v3
- name: Check for schema updates
run: ls scripts
- name: Download artifact
uses: actions/github-script@v6
# continue-on-error: true
env:
WORKFLOW_FILENAME: graphql-schema.yml
ARTIFACT_NAME: schema
ARTIFACT_FILENAME: schema.zip
UNZIP_DIR: ./
with:
script: |
const script = require('./scripts/download-previous-artifact.js')
await script({github, context, core})
- name: Rename schema.json to schema-old.json
run: |
find ./ -type f -name "schema.json"
mv schema.json schema-old.json
- name: Fetch GraphQL Schema
env:
NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }}
run: |
go install github.com/newrelic/tutone/cmd/tutone@latest
tutone fetch --refetch
ls
- name: Check for schema updates
uses: actions/github-script@v6
id: schema-diff
with:
script: |
const script = require('./scripts/schema-diff.js')
await script({core})
- name: Check for output from script
run: echo "${{ steps.schema-diff.outputs.new_endpoints }}"
- name: Send report to Slack
id: slack
if: ${{ always() }}
uses: slackapi/[email protected]
with:
# Uses Slack's Block Kit to build the message
# "New Relic Client Go | NerdGraph API Report",
payload: |
{
"blocks": [
{
"type": "context",
"elements": [
{
"type": "plain_text",
"text": ${{ toJSON(steps.schema-diff.outputs.new_endpoints) }}
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
# uploadSchema:
# runs-on: ubuntu-latest
# steps:
# - name: Install Node
# uses: actions/setup-node@v4
# with:
# node-version: 20.x
# - name: Install Go
# uses: actions/setup-go@v5
# with:
# go-version: 1.21.x
# - name: Checkout code
# uses: actions/checkout@v3
# # - name: Fetch GraphQL Schema
# # env:
# # NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }}
# # run: |
# # go install github.com/newrelic/tutone/cmd/tutone@latest
# # tutone fetch --refetch
# # ls
# # - name: Check for schema updates
# # run: ./scripts/schema-diff.js
# - name: Upload latest schema.json
# uses: actions/upload-artifact@v4
# with:
# # Duration after which artifact will expire in days. 0 means using default retention.
# # Minimum 1 day.
# # Maximum 90 days unless changed from the repository settings page.
# retention-days: 90
# name: schema
# path: schema.json
# if-no-files-found: error
# overwrite: true