Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 32 additions & 8 deletions .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,20 +98,44 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
run: |
# Download layer.zip from existing latest tagged SDK release note
LATEST_SDK_VERSION=$(gh release list --repo "aws-observability/aws-otel-js-instrumentation" --json tagName,isLatest -q 'map(select(.isLatest==true)) | .[0].tagName')
mkdir -p layer_artifact
gh release download "$LATEST_SDK_VERSION" --repo "aws-observability/aws-otel-js-instrumentation" --pattern "layer.zip" --dir layer_artifact
shasum -a 256 layer_artifact/layer.zip > layer_artifact/layer.zip.sha256
# Create release notes template
cat > release_notes.md << 'EOF'
This release contains the following upstream components:

- `@opentelemetry/api` - <dependency version number>
- `@opentelemetry/auto-configuration-propagators` - <dependency version number>
- `@opentelemetry/auto-instrumentations-node` - <dependency version number>
- `@opentelemetry/core` - <dependency version number>
- `@opentelemetry/exporter-metrics-otlp-grpc` - <dependency version number>
- `@opentelemetry/exporter-metrics-otlp-http` - <dependency version number>
- `@opentelemetry/exporter-trace-otlp-proto` - <dependency version number>
- `@opentelemetry/exporter-zipkin` - <dependency version number>
- `@opentelemetry/id-generator-aws-xray` - <dependency version number>
- `@opentelemetry/instrumentation` - <dependency version number>
- `@opentelemetry/instrumentation-aws-sdk` - <dependency version number>
- `@opentelemetry/propagator-aws-xray` - <dependency version number>
- `@opentelemetry/resource-detector-aws` - <dependency version number>
- `@opentelemetry/resources` - <dependency version number>
- `@opentelemetry/sdk-metrics` - <dependency version number>
- `@opentelemetry/sdk-node` - <dependency version number>
- `@opentelemetry/sdk-trace-base` - <dependency version number>
- `@opentelemetry/semantic-conventions` - <dependency version number>
- `<ANY NEW DEPENDENCIES>` - <new dependency version number>

This release also publishes to public ECR and NPM.
* See ADOT node auto-instrumentation Docker image v${{ github.event.inputs.version }} in our public ECR repository:
https://gallery.ecr.aws/aws-observability/adot-autoinstrumentation-node
* See version ${{ github.event.inputs.version }} in our NPM repository:
https://www.npmjs.com/package/@aws/aws-distro-opentelemetry-node-autoinstrumentation
EOF

gh release create --target "$GITHUB_REF_NAME" \
--title "Release v${{ github.event.inputs.version }}" \
--notes-file release_notes.md \
--draft \
"v${{ github.event.inputs.version }}" \
aws-distro-opentelemetry-node-autoinstrumentation/${{ env.ARTIFACT_NAME }} \
${{ env.ARTIFACT_NAME }}.sha256 \
layer_artifact/layer.zip \
layer_artifact/layer.zip.sha256
${{ env.ARTIFACT_NAME }}.sha256

# Publish '@aws/aws-distro-opentelemetry-node-autoinstrumentation' to npm
- name: Publish autoinstrumentation to npm
Expand Down
71 changes: 44 additions & 27 deletions .github/workflows/release-lambda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,25 @@ permissions:
contents: write

jobs:
check-draft:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4
- name: Check for release draft
run: |
TAG="v${{ github.event.inputs.version }}"
# Check if draft release exists with this tag
if ! gh release view $TAG --json isDraft -q .isDraft 2>/dev/null | grep -q true; then
echo "No draft release found for tag $TAG. Did you first run the Release Build workflow?"
exit 1
fi
echo "Found draft release for tag $TAG. Proceeding with Lambda layer release."
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-layer:
environment: Release
needs: check-draft
runs-on: ubuntu-latest
outputs:
aws_regions_json: ${{ steps.set-matrix.outputs.aws_regions_json }}
Expand Down Expand Up @@ -205,36 +222,36 @@ jobs:
id: commit
run: |
echo "sha_short=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_OUTPUT

- name: Create Release Notes
run: |
echo "AWS OpenTelemetry Lambda Layer for JavaScript version ${{ github.event.inputs.version }}-${{ steps.commit.outputs.sha_short }}" > release_notes.md
echo "" >> release_notes.md
echo "Lambda Layer ARNs:" >> release_notes.md
echo "" >> release_notes.md
cat layer-note >> release_notes.md
echo "" >> release_notes.md
echo "Notes:" >> release_notes.md
- name: Create GH release
- name: Update GH release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create \
--target "$GITHUB_REF_NAME" \
--title "Release lambda-v${{ github.event.inputs.version }}-${{ steps.commit.outputs.sha_short }}" \
--notes-file release_notes.md \
--draft \
"lambda-v${{ github.event.inputs.version }}-${{ steps.commit.outputs.sha_short }}" \
layer_arns.tf layer.zip
echo Removing release_notes.md ...
rm -f release_notes.md
- name: Upload layer.zip and SHA-256 checksum to SDK Release Notes (tagged with latest)
TAG="v${{ github.event.inputs.version }}"
# Generate SHA-256 checksum for layer.zip
shasum -a 256 layer.zip > layer.zip.sha256
gh release upload $TAG \
layer.zip \
layer.zip.sha256 \
layer_arns.tf \
--clobber
- name: Update Release Notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_SDK_VERSION=$(gh release list --repo "aws-observability/aws-otel-js-instrumentation" --json tagName,isLatest -q 'map(select(.isLatest==true)) | .[0].tagName')
# Generate SHA-256 checksum for layer.zip
shasum -a 256 layer.zip > layer.zip.sha256
# Upload layer.zip and its checksum to the latest SDK release note
gh release upload "$LATEST_SDK_VERSION" layer.zip layer.zip.sha256 --repo "aws-observability/aws-otel-js-instrumentation" --clobber
echo "✅ layer.zip successfully uploaded to $LATEST_SDK_VERSION in the upstream repo!"
TAG="v${{ github.event.inputs.version }}"
# Get current release notes
current_notes=$(gh release view $TAG --json body -q .body)
echo "This release also includes the AWS OpenTelemetry Lambda Layer for JavaScript version ${{ github.event.inputs.version }}-${{ steps.commit.outputs.sha_short }}." >> lambda_notes.md
echo "" >> lambda_notes.md
echo "Lambda Layer ARNs:" >> lambda_notes.md
echo "" >> lambda_notes.md
cat layer-note >> lambda_notes.md
echo "" >> lambda_notes.md
echo "Notes:" >> lambda_notes.md
{
echo "$current_notes"
echo ""
cat lambda_notes.md
} > updated_notes.md
# Update release notes
gh release edit $TAG --notes-file updated_notes.md
Loading