add proxy tests for the SNS service (#112) #56
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 [email protected] --activate | |
| shell: bash | |
| - name: Set up Terraform CLI | |
| uses: hashicorp/setup-terraform@v2 | |
| - 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 install | |
| . .venv/bin/activate | |
| 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 linter | |
| run: | | |
| cd aws-proxy | |
| (. .venv/bin/activate; pip install --upgrade --pre localstack localstack-ext) | |
| make lint | |
| - 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 |