feat: aiohttp instrumentation #48
Workflow file for this run
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: E2E Tests | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'drift/**' | |
| - '.github/workflows/e2e.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'drift/**' | |
| - '.github/workflows/e2e.yml' | |
| workflow_dispatch: {} | |
| jobs: | |
| discover: | |
| name: Discover E2E Tests | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Find all e2e-tests directories | |
| id: set-matrix | |
| run: | | |
| # Find all directories with e2e-tests and convert to JSON array | |
| LIBRARIES=$(find drift/instrumentation -type d -name "e2e-tests" \ | |
| | sed 's|drift/instrumentation/||' | sed 's|/e2e-tests||' | sort \ | |
| | jq -R -s -c 'split("\n") | map(select(length > 0))') | |
| echo "Found libraries with e2e-tests: $LIBRARIES" | |
| echo "matrix=$LIBRARIES" >> $GITHUB_OUTPUT | |
| e2e: | |
| name: E2E Tests - ${{ matrix.library }} | |
| needs: discover | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 6 | |
| matrix: | |
| library: ${{ fromJSON(needs.discover.outputs.matrix) }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Setup Python | |
| run: uv python install 3.12 | |
| - name: Setup Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| with: | |
| driver: docker | |
| - name: Install SDK dependencies | |
| run: uv sync --all-extras | |
| - name: Build SDK | |
| run: uv build | |
| - name: Verify SDK build | |
| run: | | |
| ls -la dist/ || (echo "dist folder not found!" && exit 1) | |
| test -f dist/*.whl || (echo "SDK build incomplete!" && exit 1) | |
| - name: Get latest Tusk CLI version | |
| id: tusk-version | |
| run: | | |
| VERSION=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
| "https://api.github.com/repos/Use-Tusk/tusk-drift-cli/releases/latest" \ | |
| | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "Latest Tusk CLI version: $VERSION" | |
| - name: Build base image | |
| env: | |
| DOCKER_DEFAULT_PLATFORM: linux/amd64 | |
| run: | | |
| docker build \ | |
| --build-arg TUSK_CLI_VERSION=${{ steps.tusk-version.outputs.version }} \ | |
| -t python-e2e-base:latest \ | |
| -f drift/instrumentation/e2e_common/Dockerfile.base \ | |
| . | |
| - name: Run E2E tests for ${{ matrix.library }} | |
| env: | |
| DOCKER_DEFAULT_PLATFORM: linux/amd64 | |
| TUSK_CLI_VERSION: ${{ steps.tusk-version.outputs.version }} | |
| run: | | |
| chmod +x ./drift/instrumentation/${{ matrix.library }}/e2e-tests/run.sh | |
| cd ./drift/instrumentation/${{ matrix.library }}/e2e-tests && ./run.sh 8000 | |
| - name: Cleanup Docker resources | |
| if: always() | |
| run: | | |
| # Stop all running containers | |
| docker ps -aq | xargs -r docker stop || true | |
| docker ps -aq | xargs -r docker rm || true | |
| # Clean up volumes | |
| docker volume prune -f || true | |
| # Clean up networks | |
| docker network prune -f || true |