-
Notifications
You must be signed in to change notification settings - Fork 22
131 lines (130 loc) · 4.54 KB
/
query.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
130
131
name: Query Test
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
test-branch:
strategy:
matrix:
subgraph: [ethereum, arbitrum, polygon, fantom]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18"
cache: "yarn"
- name: Install
run: |
yarn install --frozen-lockfile
- name: Check Variables
run: |
DEPLOYMENT_ID=$(jq -r .id subgraphs/${{ matrix.subgraph }}/config.json)
[[ ! -z "$DEPLOYMENT_ID" ]] && echo "deployment id is set" || (echo "::error::deployment id is not set in config.json" && exit 1)
echo "DEPLOYMENT_ID=$DEPLOYMENT_ID" >> $GITHUB_ENV
- name: Get Latest Date
run: |
yarn subgraph latest-date ${{ matrix.subgraph }} --deployment ${{ env.DEPLOYMENT_ID }}
- name: Get Token Records
run: |
yarn subgraph query ${{ matrix.subgraph }} --branch branch --deployment ${{ env.DEPLOYMENT_ID }}
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: results-${{ matrix.subgraph }}
path: build/results-${{ matrix.subgraph }}.json
test-base:
strategy:
matrix:
subgraph: [ethereum, arbitrum, polygon, fantom]
runs-on: ubuntu-latest
needs: [test-branch]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.base_ref }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18"
cache: "yarn"
- name: Install
run: |
yarn install --frozen-lockfile
- name: Check Variables
run: |
DEPLOYMENT_ID=$(jq -r .id subgraphs/${{ matrix.subgraph }}/config.json)
[[ ! -z "$DEPLOYMENT_ID" ]] && echo "deployment id is set" || (echo "::error::deployment id is not set in config.json" && exit 1)
echo "DEPLOYMENT_ID=$DEPLOYMENT_ID" >> $GITHUB_ENV
- name: Download Results
uses: actions/download-artifact@v3
with:
name: results-${{ matrix.subgraph }}
path: build/
- name: Get Token Records
run: |
yarn subgraph query ${{ matrix.subgraph }} --branch base --deployment ${{ env.DEPLOYMENT_ID }}
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: results-${{ matrix.subgraph }}
path: build/results-${{ matrix.subgraph }}.json
compare:
strategy:
matrix:
subgraph: [ethereum, arbitrum, polygon, fantom]
runs-on: ubuntu-latest
needs: [test-branch, test-base]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.ref }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18"
cache: "yarn"
# Looks for an existing comment, so it can be updated
- name: Find Existing Comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: ${{ matrix.subgraph }}
- name: Install
run: |
yarn install --frozen-lockfile
- name: Download Results
uses: actions/download-artifact@v3
with:
name: results-${{ matrix.subgraph }}
path: build/
- name: Compare Token Records
run: |
yarn subgraph compare ${{ matrix.subgraph }}
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: results-${{ matrix.subgraph }}
path: build/results-${{ matrix.subgraph }}.json
- name: Prepare Results Output
id: output
# We store the output in the github environment as it's a multiline string: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
run: |
echo "OUTPUT<<EOF" >> $GITHUB_ENV
echo "$(jq -r .results.output build/results-${{ matrix.subgraph }}.json)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Post Comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }} # If no comment exists, a new comment will be created
issue-number: ${{ github.event.pull_request.number }}
edit-mode: replace
body: |
${{ env.OUTPUT }}