Add proxy tests for the API Gateway service #78
This file contains hidden or 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: LocalStack AWS Proxy Extension Tests | |
| on: | |
| push: | |
| paths: | |
| - aws-proxy/** | |
| branches: | |
| - main | |
| pull_request: | |
| paths: | |
| - .github/workflows/aws-proxy.yml | |
| - aws-proxy/** | |
| workflow_dispatch: | |
| jobs: | |
| tests-aws-proxy: | |
| name: Run extension tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - name: Set up Python 3.x | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.13' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - name: Enable Corepack and set Yarn version | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@3.2.3 --activate | |
| shell: bash | |
| - name: Set up Terraform CLI | |
| uses: hashicorp/setup-terraform@v2 | |
| - name: Run linter | |
| run: | | |
| cd aws-proxy | |
| make install | |
| make lint | |
| - name: Install LocalStack and extension | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| set -e | |
| cd aws-proxy | |
| docker pull localstack/localstack-pro & | |
| docker pull public.ecr.aws/lambda/python:3.8 & | |
| # install latest CLI packages | |
| pip install --upgrade localstack localstack-ext | |
| # install dependencies | |
| sudo apt-get update | |
| sudo apt-get install -y libsasl2-dev | |
| # build and install extension | |
| localstack extensions init | |
| ( | |
| make build | |
| make enable | |
| ) | |
| # install awslocal/tflocal command lines | |
| pip install awscli-local[ver1] | |
| pip install terraform-local | |
| find /home/runner/.cache/localstack/volume/lib/extensions/python_venv/lib/python3.*/site-packages/aws* | |
| ls -la /home/runner/.cache/localstack/volume/lib/extensions/python_venv/lib/python3.*/site-packages/aws* | |
| DEBUG=1 GATEWAY_SERVER=hypercorn localstack start -d | |
| localstack wait | |
| - name: Run integration tests | |
| env: | |
| AWS_DEFAULT_REGION: us-east-1 | |
| AWS_ACCESS_KEY_ID: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }} | |
| run: | | |
| cd aws-proxy | |
| make test | |
| - name: Deploy and test sample app | |
| env: | |
| AWS_DEFAULT_REGION: us-east-1 | |
| AWS_ACCESS_KEY_ID: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }} | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| cd aws-proxy/example | |
| make test | |
| - name: Print LocalStack logs | |
| if: always() | |
| run: localstack logs |