Skip to content

add link to opentelemetry-java-contrib releases #4

add link to opentelemetry-java-contrib releases

add link to opentelemetry-java-contrib releases #4

Workflow file for this run

name: Nightly Upstream Snapshot Build
on:
schedule:
- cron: "21 3 * * *"
workflow_dispatch:
push:
branches:
- zhaez/nightly-build
permissions:
contents: write
pull-requests: write
id-token: write
env:
AWS_DEFAULT_REGION: us-east-1
BRANCH_NAME: nightly-dependency-updates
jobs:
update-and-create-pr:
runs-on: ubuntu-latest
outputs:
has_changes: ${{ steps.check_changes.outputs.has_changes }}
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #5.0.0
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Configure git
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
- name: Check out dependency update branch
run: |
if git ls-remote --exit-code --heads origin "$BRANCH_NAME"; then
echo "Branch $BRANCH_NAME already exists, checking out..."
git checkout "$BRANCH_NAME"
else
echo "Branch $BRANCH_NAME does not exist, creating new branch..."
git checkout -b "$BRANCH_NAME"
fi
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c #v6.0.0
with:
python-version: '3.11'
- name: Install Python dependencies
run: pip install requests packaging
- name: Generate breaking changes summary
id: breaking_changes
run: |
echo "BREAKING_CHANGES<<EOF" >> $GITHUB_OUTPUT
python3 scripts/find_breaking_changes.py
echo "EOF" >> $GITHUB_OUTPUT
- name: Update dependencies
run: python3 scripts/update_dependencies.py
- name: Check for changes and commit
id: check_changes
run: |
if git diff --quiet; then
echo "No dependency updates needed"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "Dependencies were updated"
echo "has_changes=true" >> $GITHUB_OUTPUT
git add dependencyManagement/build.gradle.kts
git commit -m "chore: update OpenTelemetry dependencies to latest versions"
git push origin "$BRANCH_NAME"
fi
- name: Create or update PR
if: steps.check_changes.outputs.has_changes == 'true'
run: |
PR_BODY="Automated update of OpenTelemetry dependencies to their latest available versions.
**Upstream releases with breaking changes:**
${{ steps.breaking_changes.outputs.BREAKING_CHANGES }}"
if gh pr view "$BRANCH_NAME" --json state --jq '.state' 2>/dev/null | grep -q "OPEN"; then
echo "Open PR already exists, updating description..."
gh pr edit "$BRANCH_NAME" --body "$PR_BODY"
else
echo "Creating new PR..."
gh pr create \
--title "Nightly dependency update: OpenTelemetry packages to latest versions" \
--body "$PR_BODY" \
--base main \
--head "$BRANCH_NAME"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-and-test:
needs: update-and-create-pr
if: needs.update-and-create-pr.outputs.has_changes == 'true'
uses: ./.github/workflows/main-build.yml
secrets: inherit
with:
caller-workflow-name: nightly-build
ref: nightly-dependency-updates
publish-nightly-build-status:
name: "Publish Nightly Build Status"
needs: [update-and-create-pr, build-and-test]
runs-on: ubuntu-latest
if: always()
steps:
- name: Configure AWS Credentials for emitting metrics
uses: aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 #v5.0.0
with:
role-to-assume: ${{ secrets.METRICS_ROLE_ARN }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Publish nightly build status
run: |
if [[ "${{ needs.build-and-test.result }}" == "skipped" ]]; then
echo "Build was skipped (no changes), not publishing metric"
else
value="${{ needs.build-and-test.result == 'success' && '0.0' || '1.0'}}"
aws cloudwatch put-metric-data --namespace 'ADOT/GitHubActions' \
--metric-name Failure \
--dimensions repository=${{ github.repository }},branch=${{ github.ref_name }},workflow=nightly_build \
--value $value
fi