-
Notifications
You must be signed in to change notification settings - Fork 0
151 lines (147 loc) · 4.5 KB
/
tests.yaml
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
144
145
146
147
148
149
150
151
name: Tests
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
lints:
name: Linting
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: install nightly toolchain for cargo-check-external-types
uses: dtolnay/rust-toolchain@v1
with:
toolchain: nightly-2024-02-07
- name: install latest nightly toolchain for rustfmt
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: install stable toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
components: clippy
- name: versions
run: |
rustup show
cargo --version
cargo +nightly --version
cargo clippy --version
- name: cargo fmt
run: cargo +nightly fmt --all -- --check
- name: check exported dependencies
run: |
pushd neo4j
cargo install --locked cargo-check-external-types
cargo +nightly-2024-02-07 check-external-types
popd
- name: clippy all
run: cargo clippy --all --all-features -- -D warnings
- name: clippy driver
run: cargo clippy -p neo4j -- -D warnings
- name: API stability check
run: cargo test --workspace --features _internal_public_api public_api
tests:
name: Testing
runs-on: "ubuntu-latest"
strategy:
matrix:
rust-version: [ "1.70", "stable" ]
steps:
- name: Pull Neo4j Docker Image
run: docker pull neo4j:5.6-enterprise
- name: Start Neo4j
run: docker run
-d --rm --name neo4j
-p 7474:7474 -p 7687:7687
-e NEO4J_AUTH=neo4j/pass
-e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
-e NEO4J_dbms_security_auth__minimum__password__length=1
neo4j:5.6-enterprise &
- uses: actions/checkout@v4
- name: install ${{ matrix.rust-version }} toolchain to test against
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust-version }}
components: clippy
- name: versions
run: |
rustup show
cargo --version
cargo clippy --version
- name: cargo check
env:
RUSTFLAGS: -D warnings
run: cargo check
- name: docs build
run: RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps
- name: tests
env:
TEST_NEO4J_SCHEME: neo4j
TEST_NEO4J_HOST: localhost
TEST_NEO4J_PORT: 7687
TEST_NEO4J_USER: neo4j
TEST_NEO4J_PASS: pass
TEST_NEO4J_EDITION: enterprise
TEST_NEO4J_VERSION: 5.6
run: cargo test --workspace --all-targets
- name: doc tests
env:
TEST_NEO4J_SCHEME: neo4j
TEST_NEO4J_HOST: localhost
TEST_NEO4J_PORT: 7687
TEST_NEO4J_USER: neo4j
TEST_NEO4J_PASS: pass
TEST_NEO4J_EDITION: enterprise
TEST_NEO4J_VERSION: 5.6
run: cargo test --workspace --doc
testkit:
name: TestKit
needs: [ tests, lints ]
runs-on: ubuntu-latest
strategy:
matrix:
tests: [ TESTKIT_TESTS ]
config:
- 4.4-community-bolt
- 4.4-community-neo4j
- 4.4-enterprise-bolt
- 4.4-enterprise-neo4j
- 4.4-enterprise-cluster-neo4j
- 5.1-enterprise-cluster-neo4j
- 5.5-enterprise-cluster-neo4j
- 5.7-enterprise-cluster-neo4j
- 5.9-enterprise-cluster-neo4j
include:
- tests: STUB_TESTS
config: ""
- tests: TLS_TESTS
config: ""
steps:
- name: Checkout driver
uses: actions/checkout@v4
with:
path: driver
# - name: Read required TestKit version from driver repo
# id: testkit_vars
# run: echo ::set-output name=testkit_version_ref::$(cat driver/.testkit_version | xargs)
- name: Checkout TestKit
uses: actions/checkout@v4
with:
repository: robsdedude/testkit
path: testkit
ref: rust
# ref: ${{ steps.testkit_vars.outputs.testkit_version_ref }}
- name: Run TestKit
env:
TEST_DRIVER_NAME: rust
TEST_DRIVER_REPO: ${{ github.workspace }}/driver
TEST_RUN_ALL_TESTS: "true"
run: |
cd testkit
python3 main.py --tests ${{ matrix.tests }} \
${{ matrix.config && format('--config {0}', matrix.config) || ''}}