forked from pact-foundation/pact-go
-
Notifications
You must be signed in to change notification settings - Fork 0
139 lines (125 loc) · 4.48 KB
/
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
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
on: [push, pull_request, workflow_dispatch]
name: Test
env:
PACT_BROKER_BASE_URL: https://testdemo.pactflow.io
PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
REACT_APP_API_BASE_URL: http://localhost:8080
APP_SHA: ${{ github.sha }}
APP_REF: ${{ github.ref }}
PACT_LD_LIBRARY_PATH: /tmp
PACT_GO_LIB_DOWNLOAD_PATH: /tmp
LOG_LEVEL: info
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
test:
strategy:
matrix:
go-version: [ # https://endoflife.date/go
# 1.17.x, # Ended 02 Aug 2022
# 1.18.x, # Ended 01 Feb 2023
# 1.19.x, # Ended 8 Aug 2023
# 1.20.x,
1.21.x
]
os: [
ubuntu-latest,
windows-latest,
macos-12,
macos-14
]
fail-fast: false
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- uses: actions/setup-java@v4 # Needed for the Avro example
with:
distribution: 'zulu'
java-version: '17'
- name: Deps
if: matrix.os == 'macos-14' || matrix.os == 'macos-12'
run: brew install protobuf
- name: Unit Test
if: runner.os == 'Linux'
run: make ci_unit
# - name: Test examples
# if: runner.os == 'Linux'
# run: APP_BRANCH=${APP_REF:11} DOCKER_GATEWAY_HOST=172.17.0.1 DOCKER_HOST_HTTP="http://172.17.0.1" make ci_pact
- if: runner.os == 'Windows'
run: rm 'C:\Windows\System32\bash.exe'
- name: Unit Test
if: runner.os != 'Linux'
run: make ci_unit_no_docker
# - name: Test examples
# if: runner.os != 'Linux'
# run: make ci_pact_no_docker
# - name: Unit Test
# if: runner.os == 'Windows'
# run: make test
# env:
# SKIP_PLUGIN_AVRO: true
- name: Install goveralls
run: go install github.com/mattn/goveralls@latest
if: runner.os == 'Linux'
- name: Send coverage
run: goveralls -coverprofile=coverage.txt -service=github -parallel
if: runner.os == 'Linux'
- uses: actions/upload-artifact@v3
with:
name: logs-${{ github.job }}-${{ github.run_id }}-${{ github.run_attempt }}.zip
path: ~/.pact/plugins/**/plugin.log
if: ${{ always() }} && runner.os == 'Linux'
# finish:
# needs: test
# runs-on: ubuntu-latest
# steps:
# - name: Coveralls Finished
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel-finished: true
test_alpine:
runs-on: [ubuntu-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build image
run: docker build . --progress plain -t pact-go-test:amd64-alpine
- name: Test Unit
run: docker run --rm -e PACT_DO_NOT_TRACK=true -e PACT_LD_LIBRARY_PATH=$PACT_LD_LIBRARY_PATH -e PACT_GO_LIB_DOWNLOAD_PATH=$PACT_GO_LIB_DOWNLOAD_PATH pact-go-test:amd64-alpine
if: always()
- name: Test examples
run: docker run --rm -e PACT_DO_NOT_TRACK=true -e PACT_LD_LIBRARY_PATH=$PACT_LD_LIBRARY_PATH -e PACT_GO_LIB_DOWNLOAD_PATH=$PACT_GO_LIB_DOWNLOAD_PATH pact-go-test:amd64-alpine /bin/sh -c 'make install && make download_plugins && make pact'
if: always()
# test_alpine_arm64:
# runs-on: [ubuntu-latest]
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Set up QEMU
# if: runner.os == 'Linux'
# uses: docker/setup-qemu-action@v3
# - name: Build image
# run: docker build . --progress plain --platform=linux/arm64 -t pact-go-test:arm64-alpine
# - name: Test Unit
# run: docker run --platform=linux/arm64 --rm -e PACT_DO_NOT_TRACK=true pact-go-test:arm64-alpine
# if: always()
# - name: Test examples
# run: docker run --platform=linux/arm64 --rm -e PACT_DO_NOT_TRACK=true pact-go-test:arm64-alpine /bin/sh -c 'make install && make download_plugins && make pact'
# if: always()
# finish:
# needs: test
# runs-on: ubuntu-latest
# steps:
# - name: Coveralls Finished
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel-finished: true