-
-
Notifications
You must be signed in to change notification settings - Fork 250
87 lines (71 loc) · 2.42 KB
/
stress_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
name: AppFlowy-Cloud Stress Test
on: [ pull_request, push ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
POSTGRES_HOST: localhost
REDIS_HOST: localhost
MINIO_HOST: localhost
GOTRUE_HOST: localhost
SQLX_OFFLINE: true
RUST_TOOLCHAIN: "1.78"
jobs:
test:
name: Collab Stress Tests
runs-on: self-hosted-appflowy3
steps:
- name: Verify Author is a Member of the Organization
id: check_membership
run: |
ORG_NAME="AppFlowy-IO"
AUTHOR="${{ github.actor }}"
echo "Checking if $AUTHOR is a member of $ORG_NAME..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/orgs/$ORG_NAME/members/$AUTHOR")
if [ "$RESPONSE" == "200" ]; then
echo "✅ $AUTHOR is a member of $ORG_NAME. Proceeding..."
else
echo "⚠️ $AUTHOR is not a member of $ORG_NAME. Skipping CI."
echo "skip_ci=true" >> $GITHUB_ENV
fi
shell: bash
- name: Skip Job
if: env.skip_ci == 'true'
run: |
echo "Skipping the CI job as the author is not a member of the organization."
shell: bash
# Step 3: Checkout Repository
- name: Checkout Repository
if: env.skip_ci != 'true'
uses: actions/checkout@v3
- name: Install Rust Toolchain
if: env.skip_ci != 'true'
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust Dependencies
if: env.skip_ci != 'true'
uses: Swatinem/rust-cache@v2
with:
workspaces: "AppFlowy-Cloud"
- name: Copy and Rename deploy.env to .env
if: env.skip_ci != 'true'
run: cp deploy.env .env
- name: Replace Values in .env
if: env.skip_ci != 'true'
run: |
sed -i '' 's|RUST_LOG=.*|RUST_LOG=trace|' .env
shell: bash
- name: Start Docker Compose Services
if: env.skip_ci != 'true'
run: |
docker compose -f docker-compose-stress-test.yml up -d
docker ps -a
- name: Install Prerequisites
if: env.skip_ci != 'true'
run: |
brew install protobuf
- name: Run Server and Test
if: env.skip_ci != 'true'
run: |
cargo run --package xtask -- --stress-test