-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
101 additions
and
4 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# 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-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: ${{ 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 }} |