Auto alternative #89
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/gateway_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/gateway_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: | |
pro: | |
name: tyk-automated-tests on Tyk Pro | |
runs-on: ubuntu-latest | |
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 | |
- uses: aws-actions/amazon-ecr-login@v1 | |
id: ecr | |
- uses: actions/checkout@v3 | |
- name: env up | |
working-directory: auto | |
env: | |
confs_dir: /__w/tyk-pro/tyk-pro/auto/pro | |
graphql_data: /__w/tyk-pro/tyk-pro/compose/volumes/test/graphql-faker | |
certs_dir: /__w/tyk-pro/tyk-pro/compose/volumes/gw/certs | |
run: | | |
ls $confs_dir | |
ls $graphql_data | |
ls $certs_dir | |
echo "registry=${{ steps.ecr.outputs.registry }} | |
tyk_sink_image=\${registry}/tyk-sink:${{ inputs.tyk-sink-version || 'v2.1.1' }} | |
tyk_image=\${registry}/tyk:${{ inputs.tyk-version || 'v4.3.4' }} | |
tyk_analytics_image=\${registry}/tyk-analytics:${{ inputs.tyk-analytics-version || 'v4.3.3' }} | |
tyk_pump_image=\${registry}/tyk-pump:${{ inputs.tyk-pump-version || 'v1.7.0' }}" > 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 | |
if: ${{always()}} | |
run: docker ps | |
- name: Docker Compose logs | |
if: ${{failure()}} | |
working-directory: auto | |
run: docker compose -f ${{ github.job }}.yml -f deps.yml --env-file versions.env --env-file tat.env logs | |
- name: Waiting for dashboard | |
shell: bash | |
run: | | |
while [[ "$(curl -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: 15 | |
- name: Run pytest | |
working-directory: /app | |
run: | | |
. $GITHUB_WORKSPACE/auto/test.env | |
echo "this are env vars" | |
env | |
docker run ${{ steps.ecr.outputs.registry }}/tyk-automated-tests:1.0.0-rc1 pytest /app/tests/gateway_api |