-
-
Notifications
You must be signed in to change notification settings - Fork 534
133 lines (113 loc) · 3.59 KB
/
e2e_tests.yml
File metadata and controls
133 lines (113 loc) · 3.59 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
name: e2e tests
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
permissions:
contents: read
concurrency:
group: e2e-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
e2e-tests:
name: e2e tests
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
ruby_version: ["3.4.5"]
env:
DOCKER_IMAGE: "ghcr.io/getsentry/sentry-ruby-devcontainer-build"
DOCKER_TAG: "bff2bf4c90959b3710d26499a2eed0911953a325"
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up `.env` file
run: |
cd .devcontainer
cp .env.example .env
- name: Restore rubygems cache
uses: actions/cache@v3
with:
path: |
vendor/gems/${{ matrix.ruby_version }}
key: ${{ runner.os }}-${{ matrix.ruby_version }}-gems-${{ hashFiles('Gemfile.lock', '*/Gemfile.lock', 'spec/apps/**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.ruby_version }}-gems-
- name: Restore node_modules cache
uses: actions/cache@v3
with:
path: spec/apps/svelte-mini/node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('spec/apps/svelte-mini/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-modules-
- name: Build sentry-test-services
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
build sentry-test-services
- name: Set up test services
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
run --rm sentry-test-services \
echo "Done"
- name: Start test services
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
up -d sentry-test-services
- name: "Wait for rails-mini app to be ready"
uses: nev7n/wait_for_response@v1
with:
url: 'http://localhost:4000/health'
responseCode: 200
timeout: 90000
interval: 500
- name: "Wait for svelte-mini app to be ready"
uses: nev7n/wait_for_response@v1
with:
url: 'http://localhost:4001/health'
responseCode: 200
timeout: 90000
interval: 500
- name: Build sentry-test
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
build sentry-test
- name: Set up sentry-test container
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
run --rm sentry-test \
echo "Done"
- name: Run e2e tests via sentry-test
run: |
docker compose \
--file .devcontainer/docker-compose.yml \
--env-file .devcontainer/.env \
run --rm sentry-test \
bundle exec rake
- name: Stop e2e services
if: always()
run: |
cd .devcontainer
source .env
docker compose --profile e2e down
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-test-logs-ruby-${{ matrix.ruby_version }}
path: |
log/sentry_debug_events.log
retention-days: 7