-
Notifications
You must be signed in to change notification settings - Fork 24
81 lines (78 loc) · 2.79 KB
/
test-broker.yml
File metadata and controls
81 lines (78 loc) · 2.79 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
name: Test Broker Workflow
on:
# push:
pull_request:
branches:
- master
jobs:
test:
strategy:
fail-fast: false
matrix:
ruby_version: ["3.3"]
os: [
"ubuntu-latest",
"windows-latest",
"macos-latest"
]
project: [e2e]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v5
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
bundler-cache: true
working-directory: ${{ matrix.project }}
- run: bundle install
name: Install dependencies (pact_broker)
working-directory: pact_broker
- run: bundle exec rackup -s puma --pid broker.pid &
shell: bash
name: Start Pact Broker
working-directory: pact_broker
- run: "bundle exec rake pact:spec"
name: Pact consumer tests
working-directory: ${{ matrix.project }}
- run: "bundle exec rake pact:verify:foobar"
name: Pact provider verification (directory)
working-directory: ${{ matrix.project }}
- run: "bundle exec rake pact:publish"
name: Publish pacts to broker
working-directory: ${{ matrix.project }}/consumer
- run: "bundle exec rake pact:verify:foobar"
name: Pact provider verification (broker via PACT_URL)
working-directory: ${{ matrix.project }}/provider
env:
PACT_URL: http://localhost:9292/pacts/provider/Bar/consumer/Foo/latest
- run: "bundle exec rake pact:verify:foobar"
name: Pact provider verification (broker via consumer version selectors)
working-directory: ${{ matrix.project }}/provider
env:
PACT_BROKER_URL: http://localhost:9292
- run: "bundle exec rake pact:verify:foobar"
name: Pact provider verification (broker via PACT_URL) with published results
working-directory: ${{ matrix.project }}/provider
env:
PACT_URL: http://localhost:9292/pacts/provider/Bar/consumer/Foo/latest
PACT_PUBLISH_VERIFICATION_RESULTS: true
- run: "bundle exec rake pact:verify:foobar"
name: Pact provider verification (broker via consumer version selectors) with published results
working-directory: ${{ matrix.project }}/provider
env:
PACT_BROKER_URL: http://localhost:9292
PACT_PUBLISH_VERIFICATION_RESULTS: true
- run: kill -9 $(cat broker.pid)
shell: bash
name: Stop Pact Broker
working-directory: pact_broker
if: runner.os != 'Windows'
- run: |
for /f %%i in (broker.pid) do taskkill /PID %%i /F
shell: cmd
name: Stop Pact Broker (Windows)
working-directory: pact_broker
if: runner.os == 'Windows'