Skip to content

Workflow file for this run

# This workflow build the aws-opentelemetry-distro wheel file, upload to staging S3 bucket, and build project docker image then push to staging ECR
name: Python Instrumentation Main Build
on:
push:
env:
AWS_DEFAULT_REGION: us-east-1
STAGING_ECR_REGISTRY: 637423224110.dkr.ecr.us-east-1.amazonaws.com
STAGING_ECR_REPOSITORY: aws-observability/adot-autoinstrumentation-python-staging
STAGING_S3_BUCKET: ${{ secrets.STAGING_BUCKET_NAME }}
concurrency:
group: python-instrumentation-main-build
cancel-in-progress: false
permissions:
id-token: write
contents: read
jobs:
# build:
# runs-on: ubuntu-latest
# outputs:
# aws_default_region: ${{ steps.python_output.outputs.awsDefaultRegion}}
# python_image_tag: ${{ steps.python_output.outputs.python_image_tag}}
# staging_image: ${{ steps.python_output.outputs.stagingImage}}
# staging_registry: ${{ steps.python_output.outputs.stagingRegistry}}
# staging_repository: ${{ steps.python_output.outputs.stagingRepository}}
# staging_wheel_file: ${{ steps.staging_wheel_output.outputs.STAGING_WHEEL}}
# steps:
# - name: Checkout Contrib Repo @ SHA - ${{ github.sha }}
# uses: actions/checkout@v4
#
# - name: Get Python Distro Output
# id: python_output
# run: |
# pkg_version=$(grep '__version__' ./aws-opentelemetry-distro/src/amazon/opentelemetry/distro/version.py | awk -F '"' '{print $2}')
# echo "ADOT_PYTHON_VERSION=$pkg_version" >> $GITHUB_OUTPUT
# shortsha="$(git rev-parse --short HEAD)"
# echo "SHORT_SHA=$shortsha" >> $GITHUB_ENV
# python_distro_tag=$pkg_version-$shortsha
# echo "awsDefaultRegion=${{ env.AWS_DEFAULT_REGION }}" >> $GITHUB_OUTPUT
# echo "python_image_tag=$python_distro_tag" >> $GITHUB_OUTPUT
# echo "stagingRegistry=${{ env.STAGING_ECR_REGISTRY }}" >> $GITHUB_OUTPUT
# echo "stagingRepository=${{ env.STAGING_ECR_REPOSITORY }}" >> $GITHUB_OUTPUT
# echo "stagingImage=${{ env.STAGING_ECR_REGISTRY }}/${{ env.STAGING_ECR_REPOSITORY }}:$python_distro_tag" >> $GITHUB_OUTPUT
#
# - name: Build and Push Wheel and Image Files
# uses: ./.github/actions/artifacts_build
# with:
# aws-region: ${{ env.AWS_DEFAULT_REGION }}
# image_uri_with_tag: ${{ steps.python_output.outputs.stagingImage}}
# image_registry: ${{ env.STAGING_ECR_REGISTRY }}
# snapshot-ecr-role: ${{ secrets.AWS_ASSUME_ROLE_ARN }}
# push_image: true
# load_image: false
# python_version: "3.10"
# package_name: aws-opentelemetry-distro
# os: ubuntu-latest
#
# # workaround: prefixing the short-sha with a 0 to create a valid
# # wheel file name as per https://peps.python.org/pep-0427/#file-name-convention
# - name: Output Wheel File Name
# id: staging_wheel_output
# run: |
# staging_wheel="aws_opentelemetry_distro-${{ steps.python_output.outputs.ADOT_PYTHON_VERSION}}-0${{ env.SHORT_SHA }}-py3-none-any.whl"
# echo "STAGING_WHEEL=$staging_wheel" >> $GITHUB_OUTPUT
# cd ./dist
# cp aws_opentelemetry_distro-${{ steps.python_output.outputs.ADOT_PYTHON_VERSION}}-py3-none-any.whl $staging_wheel
#
# - name: Upload wheel to S3
# run: |
# aws s3 cp dist/${{ steps.staging_wheel_output.outputs.STAGING_WHEEL}} s3://${{ env.STAGING_S3_BUCKET }}
#
# - name: Upload Wheel to GitHub Actions
# uses: actions/upload-artifact@v3
# with:
# name: ${{ steps.staging_wheel_output.outputs.STAGING_WHEEL}}
# path: dist/${{ steps.staging_wheel_output.outputs.STAGING_WHEEL}}
#
# - name: Set up and run contract tests with pytest
# run: |
# bash scripts/set-up-contract-tests.sh
# pip install pytest
# pytest contract-tests/tests
# # Application Signals specific e2e eks tests
# application-signals-python-e2e-eks-test:
# needs: [build]
# uses: aws-observability/aws-application-signals-test-framework/.github/workflows/application-signals-python-e2e-eks-test.yml@main
# secrets: inherit
# with:
# aws-region: ${{ needs.build.outputs.aws_default_region }}
# test-cluster-name: e2e-python-adot-test
# caller-workflow-name: 'main-build'
# application-signals-adot-image: ${{ needs.build.outputs.staging_registry }}/aws-observability/adot-autoinstrumentation-python-staging
# application-signals-adot-image-tag: ${{ needs.build.outputs.python_image_tag }}
#
# # Application Signals specific e2e tests for ec2
# application-signals-python-e2e-ec2-test:
# needs: [ build ]
# uses: aws-observability/aws-application-signals-test-framework/.github/workflows/application-signals-python-e2e-ec2-default-test.yml@main
# secrets: inherit
# with:
# aws-region: ${{ needs.build.outputs.aws_default_region }}
# staging_wheel_name: ${{ needs.build.outputs.staging_wheel_file }}
# caller-workflow-name: 'main-build'
#
application-signals-e2e-test:
name: "Application Signals E2E Test"
# needs: [ build ]
uses: ./.github/workflows/application-signals-e2e-test.yml
secrets: inherit
permissions:
id-token: write
contents: read
with:
staging-wheel-name: aws_opentelemetry_distro-0.2.0.dev0-062311f1-py3-none-any.whl
adot-image-name: 637423224110.dkr.ecr.us-east-1.amazonaws.com/aws-observability/adot-autoinstrumentation-python-staging:0.2.0.dev0-62311f1
# staging-wheel-name: ${{ needs.build.outputs.staging_wheel_file }}
# adot-image-name: ${{ needs.build.outputs.staging_registry }}/aws-observability/adot-autoinstrumentation-python-staging:${{ needs.build.outputs.python_image_tag }}