-
Notifications
You must be signed in to change notification settings - Fork 2
117 lines (95 loc) · 3.45 KB
/
test-server-sdk.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
name: Test Packaged Server SDKs
on:
workflow_call:
inputs:
platform:
description: 'Platforms to test the SDK Relay on; linux, macos, windows'
type: string
required: true
os:
description: 'Specific runner OS to use'
type: string
required: true
sdkName:
description: 'Name of the SDK'
type: string
required: true
sdkRelayDir:
description: 'Directory of the SDK Relay server code'
type: string
required: false
jobs:
test-packaged-server-sdks:
runs-on: ${{ inputs.os }}
env:
SDK_NAME: ${{ inputs.sdkName }}
SDK_DIR: ${{ inputs.sdkRelayDir }}
EPPO_API_HOST: localhost
SDK_RELAY_HOST: localhost
TEST_RUNNER_HOST: localhost
EPPO_SDK_PLATFORM: ${{ inputs.platform }}
PROJECT_ID: ${{ vars.SDK_TESTING_PROJECT_ID }}
REGION: ${{ vars.SDK_TESTING_REGION }}
GAR_LOCATION: ${{ vars.SDK_TESTING_REGION }}-docker.pkg.dev/${{ vars.SDK_TESTING_PROJECT_ID }}/sdk-testing
steps:
- name: Test information header
shell: bash
run: echo "Running Test Cluster for ${SDK_NAME}"
- name: Get current date
id: date
run: |
echo "::set-output name=date::$(date +'%Y-%m-%d')"
echo "SAFE_SDK_NAME=$(echo ${SDK_NAME} | sed 's/\//_/g')" >> $GITHUB_ENV
- name: "Checkout"
uses: actions/checkout@v3
# Set up docker (macos runners)
- id: setup-docker
if: ${{ inputs.platform.platform == 'macos' }}
name: Setup Docker
uses: "douglascamata/setup-docker-macos-action"
# Set up gCloud
- id: "auth"
uses: "google-github-actions/auth@v1"
with:
credentials_json: "${{ secrets.SERVICE_ACCOUNT_KEY }}"
- name: "Set up Cloud SDK"
uses: "google-github-actions/setup-gcloud@v1"
- name: "Use gcloud CLI"
run: "gcloud info"
# Allow docker access to the GAR
- name: "Docker auth"
run: |-
gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet
# Pull test runner and testing api images for GCP Artifact Registry (GAR) and
# retag them locally as expected by the runner script.
- name: Pull Test Runner image
run: |
docker pull ${{ env.GAR_LOCATION }}/sdk-test-runner:latest
docker tag ${{ env.GAR_LOCATION }}/sdk-test-runner:latest Eppo-exp/sdk-test-runner:latest
docker pull ${{ env.GAR_LOCATION }}/testing-api:latest
docker tag ${{ env.GAR_LOCATION }}/testing-api:latest Eppo-exp/testing-api:latest
docker images
- name: Run tests
run: |
pushd package-testing/sdk-test-runner
./test-sdk.sh server ${SDK_NAME}
popd
- name: Logs
if: success() || failure() # always run even if the previous steps fail
run: |
echo "List log files"
pushd package-testing/sdk-test-runner
ls logs
cat logs/sdk.log
popd
- name: Upload Logs
if: success() || failure() # always run even if the previous steps fail
uses: actions/upload-artifact@v4
with:
name: ${{ steps.date.outputs.date }}-${{ env.SAFE_SDK_NAME }}-test-logs
path: package-testing/sdk-test-runner/logs/
- name: Publish Test Report
uses: mikepenz/action-junit-report@v5
if: success() || failure() # always run even if the previous steps fail
with:
report_paths: 'package-testing/sdk-test-runner/logs/results.xml'