-
Notifications
You must be signed in to change notification settings - Fork 1.2k
131 lines (111 loc) · 4.59 KB
/
test-integration-erigon.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: Integration tests - ERIGON
on:
push:
branches:
- main
- 'release/**'
pull_request:
branches:
- main
types:
- opened
- reopened
- synchronize
- ready_for_review
schedule:
- cron: '20 16 * * *' # daily at 16:20 UTC
workflow_dispatch:
jobs:
#
# This first job is used to determine if changes are within out-of-scope dirs or files (in such a case integration tests are not run because they would be meaningless)
# NOTE: this logic is needed because the simple 'paths-ignore:' doesn't work since this workflow is set as a mandatory/required check for this repo
# - '**/.github/workflows/**' is currently commented to avoid unintended freeze in case of concurrent changes outside the excluded paths (further development will be done in due course)
#
source-of-changes:
runs-on: ubuntu-latest
outputs:
changed_files: ${{ steps.filter.outputs.changed_files }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check for changes within out-of-scope dirs or files
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
changed_files:
- 'dashboards/**'
# - '**/.github/workflows/**'
- '**/.github/workflows/backups-dashboards.yml'
tests-mac-linux:
needs: source-of-changes
strategy:
matrix:
os:
- ubuntu-22.04
- macos-14
# - ubuntu-latest-erigontests-large
runs-on: ${{ matrix.os }}
steps:
- name: Declare runners
if: needs.source-of-changes.outputs.changed_files != 'true'
run: |
set +x
echo "I am being served by this runner: $RUNNER_NAME"
- name: Checkout code
if: needs.source-of-changes.outputs.changed_files != 'true'
uses: actions/checkout@v4
- name: Update submodules
if: needs.source-of-changes.outputs.changed_files != 'true'
run: git submodule update --init --recursive --force
- name: Setup Go environment
if: needs.source-of-changes.outputs.changed_files != 'true'
uses: actions/setup-go@v5
with:
go-version: '1.23'
cache: ${{ contains(fromJSON('["refs/heads/main","refs/heads/release/2.60","refs/heads/release/2.61"]'), github.ref) }}
- name: Install dependencies on Linux
if: runner.os == 'Linux' && needs.source-of-changes.outputs.changed_files != 'true'
run: sudo apt update && sudo apt install build-essential
- name: Run integration tests on ${{ matrix.os }}
if: needs.source-of-changes.outputs.changed_files != 'true'
run: GOGC=80 make test-integration
- name: This ${{ matrix.os }} check does not make sense for changes within out-of-scope directories
if: needs.source-of-changes.outputs.changed_files == 'true'
run: echo "This check does not make sense for changes within out-of-scope directories"
tests-windows:
needs: source-of-changes
strategy:
matrix:
os: [ windows-2022 ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code on ${{ matrix.os }}
if: needs.source-of-changes.outputs.changed_files != 'true'
uses: actions/checkout@v4
- name: Update submodules on Windows
if: needs.source-of-changes.outputs.changed_files != 'true'
run: git submodule update --init --recursive --force
- name: Setup Go environment on ${{ matrix.os }}
if: needs.source-of-changes.outputs.changed_files != 'true'
uses: actions/setup-go@v5
with:
go-version: '1.23'
- name: Cache Chocolatey packages
if: needs.source-of-changes.outputs.changed_files != 'true'
uses: actions/cache@v4
with:
path: |
C:\ProgramData\chocolatey\lib\mingw
C:\ProgramData\chocolatey\lib\cmake
key: chocolatey-${{ matrix.os }}
- name: Install dependencies on ${{ matrix.os }}
if: needs.source-of-changes.outputs.changed_files != 'true'
run: |
choco upgrade mingw -y --no-progress --version 13.2.0
- name: Run integration tests on ${{ matrix.os }}
if: needs.source-of-changes.outputs.changed_files != 'true'
run: .\wmake.ps1 test-integration
- name: This ${{ matrix.os }} check does not make sense for changes within out-of-scope directories
if: needs.source-of-changes.outputs.changed_files == 'true'
run: echo "This check does not make sense for changes within out-of-scope directories"