-
Notifications
You must be signed in to change notification settings - Fork 3
136 lines (134 loc) · 4.66 KB
/
relayer-ci.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
name: relayer-ci
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
ci:
strategy:
fail-fast: false
matrix:
ci_step: [
"lint",
"test",
"fuzz-test",
"integration tests contract",
"integration tests processes",
"integration tests xrpl",
]
include:
- ci_step: "lint"
command: "make lint-go"
linter-cache: true
docker-cache: false
build-contract: false
- ci_step: "test"
command: "make test-relayer"
linter-cache: false
docker-cache: false
build-contract: false
- ci_step: "fuzz-test"
command: "make test-fuzz"
linter-cache: false
docker-cache: false
build-contract: false
- ci_step: "integration tests contract"
command: "make restart-dev-env && make test-single-integration TESTS_DIR=integration-tests/contract"
linter-cache: false
docker-cache: true
build-contract: true
- ci_step: "integration tests processes"
command: "make restart-dev-env && make test-single-integration TESTS_DIR=integration-tests/processes"
linter-cache: false
docker-cache: true
build-contract: true
- ci_step: "integration tests xrpl"
command: "make restart-dev-env && make test-single-integration TESTS_DIR=integration-tests/xrpl"
linter-cache: false
docker-cache: true
build-contract: true
runs-on: ubuntu-22.04
steps:
- name: Go version used to build crust tool
run: go version
- name: Checkout coreumbridge-xrpl
uses: actions/checkout@v4
with:
persist-credentials: false
path: coreumbridge-xrpl
- name: Checkout crust
uses: actions/checkout@v4
with:
repository: CoreumFoundation/crust
path: crust
ref: 9e29fa9e7f52a0e8db70c1a1d43404de432bdac3
- name: Checkout coreum
uses: actions/checkout@v4
with:
repository: CoreumFoundation/coreum
path: coreum
ref: 4695973601fb222a90677c645e975f6a264238b6
- name: Get crust-coreum cache key
id: crust-coreum-cache-key
run: |
cd ${{ github.workspace }}/crust
CRUST_HASH=$(git rev-parse HEAD)
cd ${{ github.workspace }}/coreum
COREM_HASH=$(git rev-parse HEAD)
echo "key=$CRUST_HASH-$COREM_HASH" >> $GITHUB_OUTPUT
shell: bash
- name: Set up crust binaries
run: echo "$(pwd)/crust/bin" >> $GITHUB_PATH
- name: Set up crust cache
uses: actions/cache@v4
with:
path: |
~/.cache/crust/
${{ github.workspace }}/crust/bin/.cache
key: ${{ runner.os }}-crust-cache-${{ steps.crust-coreum-cache-key.outputs.key }}
- name: Set up coreum binaries
run: echo "$(pwd)/coreum/bin" >> $GITHUB_PATH
- name: Set up go cache
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-cache-${{ hashFiles('**/go.sum') }}
- name: Set up linter cache
uses: actions/cache@v4
if: ${{ matrix.linter-cache }}
with:
path: ~/.cache/golangci-lint
key: ${{ runner.os }}-linter-cache
- name: Set up wasm cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/coreumbridge-xrpl/contract/target/
key: ${{ runner.os }}-wasm-cache-${{ hashFiles('**/Cargo.lock') }}
if: ${{ matrix.build-contract }}
- name: Set up docker cache
uses: satackey/action-docker-layer-caching@v0.0.11
if: ${{ matrix.docker-cache }}
continue-on-error: true
with:
key: ${{ runner.os }}-docker-cache-${{ steps.crust-coreum-cache-key.outputs.key }}
- name: Build contract
run: make build-contract
working-directory: ./coreumbridge-xrpl
if: ${{ matrix.build-contract }}
- name: Download released wasm contract
run: make download-released-contract
if: ${{ matrix.build-contract }}
working-directory: ./coreumbridge-xrpl
- name: Build dev environment
run: make build-dev-env
working-directory: ./coreumbridge-xrpl
- name: Run ${{ matrix.ci_step }}
working-directory: ./coreumbridge-xrpl
run: ${{ matrix.command }}
- name: Dump docker logs on failure
if: failure()
uses: jwalton/gh-docker-logs@v2