-
Notifications
You must be signed in to change notification settings - Fork 3
117 lines (102 loc) · 3.48 KB
/
Copy pathrun_integration.yml
File metadata and controls
117 lines (102 loc) · 3.48 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
name: _run-integration
on:
workflow_call:
secrets:
STREAM_API_SECRET:
required: true
STREAM_VIDEO_API_SECRET:
required: true
STREAM_GCP_API_SECRET:
required: false
concurrency:
# Repository-wide, on purpose. The contended resource is the Stream app, not the branch,
# so keying on github.ref would let a *.x release run beside the daily run on master.
# Not `github.workflow` either: inside a reusable workflow that resolves to the caller's
# name. Not cancel-in-progress: a half-run leaves users and channels behind.
group: run-integration
cancel-in-progress: false
permissions:
contents: read
jobs:
integration-chat:
name: 🧪 Chat integration tests
runs-on: ubuntu-latest
timeout-minutes: 30
environment: ci
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'
bundler-cache: true
- name: Run chat integration tests
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_BASE_URL }}
run: make test-integration-chat
integration-feed:
name: 🧪 Feed integration tests
# Runs after chat rather than beside it: both blank and restore the app-global
# file_upload_config, so in parallel one suite's restore lands mid-assertion in
# the other. !cancelled() keeps the ordering without inheriting the implicit
# success(), so a red chat no longer hides whether feed passes.
needs: integration-chat
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
timeout-minutes: 30
environment: ci
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'
bundler-cache: true
- name: Run feed integration tests
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_BASE_URL }}
run: make test-integration-feed
integration-video:
name: 🧪 Video integration tests
runs-on: ubuntu-latest
timeout-minutes: 30
environment: ci
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'
bundler-cache: true
- name: Run video integration tests
env:
STREAM_API_KEY: ${{ vars.STREAM_VIDEO_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_VIDEO_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_VIDEO_BASE_URL }}
run: make test-integration-video
integration-gcp-lb:
name: 🧪 GCP load balancer keep-alive
runs-on: ubuntu-latest
timeout-minutes: 30
environment: ci
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'
bundler-cache: true
- name: Run GCP keep-alive integration test
env:
STREAM_API_KEY: ${{ vars.STREAM_GCP_API_KEY || vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_GCP_API_SECRET || secrets.STREAM_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_GCP_BASE_URL }}
run: make test-integration-gcp-lb