-
Notifications
You must be signed in to change notification settings - Fork 0
152 lines (133 loc) · 4.58 KB
/
tests.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
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Integration tests
on:
pull_request:
workflow_dispatch:
inputs:
tat-tests:
description: Run these tests from tyk-automated-tests to run, added to the pytest command line
type: string
default: 'tests/dashboard_api'
tyk-version:
description: ECR docker tag to use
type: string
default: master
tyk-analytics-version:
description: ECR docker tag to use
type: string
default: master
tyk-pump-version:
description: ECR docker tag to use
type: string
default: master
tyk-sink-version:
description: ECR docker tag to use
type: string
default: master
workflow_call:
inputs:
tat-tests:
description: Run these tests from tyk-automated-tests to run, added to the pytest command line
type: string
default: 'tests/dashboard_admin_api'
tyk-version:
description: ECR docker tag to use
type: string
default: master
tyk-analytics-version:
description: ECR docker tag to use
type: string
default: master
tyk-pump-version:
description: ECR docker tag to use
type: string
default: master
tyk-sink-version:
description: ECR docker tag to use
type: string
default: master
env:
GOPRIVATE: github.com/TykTechnologies
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
jobs:
ecr-login:
name: ecr-passwd
runs-on: ubuntu-latest
outputs:
aws-ecr-pass: ${{ steps.ecr-pass.outputs.ECR_PASS }}
steps:
- uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::754489498669:role/ecr_rw_tyk
role-session-name: cipush
aws-region: eu-central-1
- name: Get ecr password
id: ecr-pass
run: |
echo "ECR_PASS=$(aws ecr get-login-password --region eu-central-1)" >> "$GITHUB_OUTPUT"
- name: Create shared docker Volumes for DinD
run: |
docker volume create confs_volume
docker volume create gw_certs_volume
docker volume create graphql_volume
# The job id corresponds to the environment type that the tests will run on
pro:
name: tyk-automated-tests on Tyk Pro
runs-on: ubuntu-latest
needs: ecr-login
container:
image: 754489498669.dkr.ecr.eu-central-1.amazonaws.com/tyk-automated-tests:1.0.0-rc1
credentials:
username: AWS
password: ${{ needs.ecr-login.outputs.aws-ecr-pass }}
volumes:
- confs_volume:/confs
- gw_certs_volume:/certs
- graphql_volume:/graphql
steps:
- uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::754489498669:role/ecr_rw_tyk
role-session-name: cipush
aws-region: eu-central-1
- id: ecr
uses: aws-actions/amazon-ecr-login@v1
- uses: actions/checkout@v3
- name: Copy files to shared volumes
run: |
cp -r $GITHUB_WORKSPACE/auto/pro/* /confs
cp -r /app/ci/certs/* /certs
cp -r /app/ci/graphql-faker/* /graphql
- name: env up
working-directory: auto
# env:
# confs_dir: /__w/tyk-pro/tyk-pro/auto/pro
run: |
echo "registry=${{ steps.ecr.outputs.registry }}
tyk_sink_image=\${registry}/tyk-sink:${{ inputs.tyk-sink-version || 'master' }}
tyk_image=\${registry}/tyk:${{ inputs.tyk-version || 'master' }}
tyk_analytics_image=\${registry}/tyk-analytics:${{ inputs.tyk-analytics-version || 'master' }}
tyk_pump_image=\${registry}/tyk-pump:${{ inputs.tyk-pump-version || 'master' }}" > versions.env
# bring up env
cat versions.env
docker compose -f ${{ github.job }}.yml -f deps.yml --env-file versions.env --env-file tat.env up --quiet-pull -d
- name: Docker ps
shell: bash
run: docker ps
- name: Waiting for dashboard
shell: bash
run: |
while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:3000/hello/)" != "200" ]];do
sleep 30
echo "waiting for dashboard '$(date +"%T")'"
docker ps -a
docker logs tyk-analytics
done
timeout-minutes: 2
- name: Run pytest
working-directory: /app
run: |
echo "This is home: $GITHUB_WORKSPACE"
. $GITHUB_WORKSPACE/auto/test.env
pytest ${{ inputs.tat-tests }}