-
Notifications
You must be signed in to change notification settings - Fork 25
139 lines (109 loc) · 3.91 KB
/
build.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
132
133
134
135
136
137
138
139
name: Build Test Results Dashboard
on:
workflow_dispatch:
inputs:
runall_params:
description: 'Custom runall params'
required: false
type: string
dump_logs:
description: 'dump logs'
required: false
type: boolean
verbose:
description: 'verbose script logging'
type: choice
required: false
options:
-
- true
skip_test:
description: 'skip test - check github update'
required: false
type: boolean
ignore_cache:
description: 'ignore cache'
required: false
type: boolean
skip_push_results:
description: 'skip push results'
required: false
type: boolean
# push:
# branches:
# - '*'
pull_request:
types: [opened, reopened, synchronize]
# Allows external webhook trigger
repository_dispatch:
types:
- webhook
env:
FORCE_COLORS: 1
jobs:
runall:
runs-on: ubuntu-latest
steps:
- run: curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 -
- run: pip install jq yq
- run: which xq
- uses: actions/checkout@v4
with:
submodules: recursive
# show-progress: false
# - run: test -d bundler-spec-tests || git clone --recurse-submodules --depth 1 https://github.com/eth-infinitism/bundler-spec-tests -b v07
# name: clone bundler-spec-tests
- run: ( curl -L https://foundry.paradigm.xyz | sh ; sh -c foundryup )
name: Install foundry (for rip7560 contracts)
- run: git submodule status --recursive
name: check bundler-spec-tests and submodules status
# restore cache of bundler-spec-tests, and its submodules
- uses: actions/cache@v4
if: ${{ ! inputs.ignore_cache }}
with:
path: bundler-spec-tests
key: ${{ runner.os }}-${{ hashFiles('bundler-spec-tests/pdm.lock', 'bundler-spec-tests/@account-abstraction/contracts/**/*.sol') }}
- run: cd bundler-spec-tests; git checkout
name: "re-checkout bundler-spec-tests (on top of cache)"
- name: checked-out source artifacts
uses: actions/upload-artifact@v4
with:
name: sourceTree
path: .
retention-days: 30
#for faster "update-deps" for spec
- run: yarn --cwd bundler-spec-tests/spec remove gatsby || echo "already removed"
- run: "cd bundler-spec-tests && pdm install && pdm update-deps"
name: update submodules of bundler-spec-tests
- run: VERBOSE=${{ inputs.verbose }} ./runall.sh ${{ inputs.runall_params }}
if: ${{ ! inputs.skip_test }}
name: Run all tests ${{ inputs.runall_params }}
- name: "Test summary"
run: "grep -r '===.* in ' `find build -path '*build/out*txt'`| sed -e 's/===*//g' "
- name: Push build output to artifacts
uses: actions/upload-artifact@v4
with:
name: build
path: ./build
retention-days: 30
- name: dump logs
if: ${{ inputs.dump_logs }}
run: for d in build/*/*.log; do echo === $d:; cat $d | perl -pe 's/(?:runbundler-)?(\S+?)(?:-1)?[\s|]+(\S+)/$2 $1 /' | sort ; done
- name: Clone and update results repo
if: ${{ ! inputs.skip_push_results }}
run: ./update-results.sh out-results
- name: Push update to results repo
if: ${{ ! inputs.skip_push_results }}
uses: cpina/github-action-push-to-another-repository@main
env:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
with:
source-directory: 'out-results'
destination-github-username: 'eth-infinitism'
destination-repository-name: 'bundler-test-results'
user-email: [email protected]
target-branch: ${{ github.ref_name }}
# Allow one concurrent deployment
concurrency:
group: "deploy"
cancel-in-progress: true