-
Notifications
You must be signed in to change notification settings - Fork 0
153 lines (150 loc) · 4.08 KB
/
test.yml
File metadata and controls
153 lines (150 loc) · 4.08 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
144
145
146
147
148
149
150
151
152
153
name: Test
on:
pull_request:
branches:
- main
jobs:
lint-usernator:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.23
- name: Go mod tidy
run: |
cd usernator
go mod tidy
- 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: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.23
- name: Go mod tidy
run: |
cd executor
go mod tidy
- 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