forked from graphprotocol/graph-node
-
Notifications
You must be signed in to change notification settings - Fork 0
143 lines (127 loc) · 3.77 KB
/
ci.yml
File metadata and controls
143 lines (127 loc) · 3.77 KB
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
140
141
142
143
name: Continuous Integration
on:
push:
branches: [ master ]
pull_request:
types: [opened, synchronize, reopened]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
THEGRAPH_STORE_POSTGRES_DIESEL_URL: "postgresql://postgres:postgres@localhost:5432/graph_node_test"
jobs:
test:
name: Run tests
strategy:
fail-fast: false
matrix:
rust: [ "stable", "beta" ]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: test-cargo-${{ hashFiles('**/Cargo.toml') }}
- name: Install IPFS
run: |
wget --no-verbose "https://dist.ipfs.io/go-ipfs/v0.4.17/go-ipfs_v0.4.17_linux-amd64.tar.gz" -O /tmp/ipfs.tar.gz
( cd $HOME && tar xzvf /tmp/ipfs.tar.gz )
export PATH="$HOME/go-ipfs:$PATH"
ipfs init
ipfs daemon &> /dev/null &
- name: Install Node 11
uses: actions/setup-node@v2
with:
node-version: '11'
- name: Install Postgres
run: |
sudo apt-get update
sudo apt-get install -y libpq-dev postgresql
echo "host all all 127.0.0.1/32 md5" > sudo tee -a /etc/postgresql/10/main/pg_hba.conf
sudo service postgresql restart && sleep 3
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
sudo service postgresql restart && sleep 3
sudo -u postgres createdb graph_node_test
- name: Install rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Run unit and integration tests
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose --all -- --nocapture
rustfmt:
name: Check rustfmt style
strategy:
matrix:
rust: [ "stable" ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
components: rustfmt
override: true
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: rustfmt-cargo-${{ hashFiles('**/Cargo.toml') }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install libpq-dev
- name: Check formating
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
release-check:
name: Build in release mode
strategy:
matrix:
rust: [ "stable", "beta" ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: check-cargo-${{ hashFiles('**/Cargo.toml') }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install libpq-dev
- name: Cargo check (debug)
env:
RUSTFLAGS: "-D warnings"
uses: actions-rs/cargo@v1
with:
command: check
args: --tests
- name: Cargo check (release)
env:
RUSTFLAGS: "-D warnings"
uses: actions-rs/cargo@v1
with:
command: check
args: --release