-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (134 loc) · 3.72 KB
/
test.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
name: Test
on:
pull_request:
branches:
- main
jobs:
lint-usernator:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60
working-directory: usernator
lint-executor:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60
working-directory: executor
lint-tasky:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- name: Install protoc
uses: arduino/setup-protoc@v3
- name: Run clippy
run: |
ln ./usernator/api.proto ./tasky/api.proto
cd tasky
export IS_DOCKER=false
cargo clippy
lint-authy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- name: Run clippy
run: |
cd authy
cargo clippy
build-tools:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go 1.21
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Build tools
run: |
cd pipeline-tools
go mod tidy
go build cmd/tools.go
- uses: actions/upload-artifact@master
with:
name: build-tools
path: ./pipeline-tools/tools
unit-tests:
needs: build-tools
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: actions/download-artifact@master
with:
name: build-tools
path: ./build-tools
- name: Create proto symlinks
run: |
ln ./usernator/api.proto ./tasky/api.proto
ln ./tasky/tasky.proto ./usernator/tasky.proto
ln ./tasky/tasky.proto ./executor/tasky.proto
- name: Install docker-compose
run: |
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- name: Initialize compose cluster
run: docker-compose -f "ci-compose.yml" up -d --build
- name: Wait for startup
run: sleep 20
- name: Init services
run: |
chmod +x ./build-tools/tools
./build-tools/tools
- name: Restart containers
run: |
docker-compose -f "ci-compose.yml" stop
docker-compose -f "ci-compose.yml" up -d
- name: Wait for startup
run: sleep 20
# Tests start here
- name: Setup golang
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Setup rust
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install protoc
uses: arduino/setup-protoc@v3
- name: Test usernator
run: |
cd usernator
go mod tidy
go run fixtures/fixtures.go
export TEST_MODE=true
go test ./...
- name: Test tasky
run: |
cd tasky
export IS_DOCKER=false
export DB_USERNAME=admin
export DB_PASSWORD=admin
cargo test -- --nocapture --test-threads=1
- name: Test authy
run: |
cd authy
cargo test