Update DORA endpoints #4692
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: Release | |
permissions: | |
contents: write | |
pull-requests: write | |
env: | |
GIT_AUTHOR_EMAIL: "packages@datadoghq.com" | |
GIT_AUTHOR_NAME: "ci.datadog-api-spec" | |
on: | |
pull_request: | |
types: [closed] | |
branches: | |
- master | |
- v2 | |
jobs: | |
create_release: | |
name: Create release | |
runs-on: ubuntu-latest | |
if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') | |
steps: | |
- name: Get GitHub App token | |
id: get_token | |
uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 #v1.11.1 | |
with: | |
app-id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} | |
private-key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} | |
- name: Checkout ${{ github.event.pull_request.base.ref }} | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
token: ${{ steps.get_token.outputs.token }} | |
ref: ${{ github.event.pull_request.base.ref }} | |
fetch-depth: 0 | |
- name: Release packages | |
env: | |
HEAD_SHA: ${{ github.event.pull_request.merge_commit_sha }} | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
GH_TOKEN: ${{ steps.get_token.outputs.token }} | |
shell: bash | |
run: | | |
CHANGED_VERSION_FILES=$(git diff --diff-filter=MACR --name-only $BASE_SHA...$HEAD_SHA \ | |
| grep -E 'version\.py$' \ | |
| xargs dirname | xargs dirname | xargs dirname \ | |
| sort \ | |
| uniq) | |
declare -A versions | |
for package in $CHANGED_VERSION_FILES; do | |
base_version=$(git show $BASE_SHA:$package/src/datadog_api_client/version.py | grep "__version__ = " | sed 's/.*"\(.*\)".*/\1/') | |
head_version=$(git show $HEAD_SHA:$package/src/datadog_api_client/version.py | grep "__version__ = " | sed 's/.*"\(.*\)".*/\1/') | |
if [ "$base_version" != "$head_version" ]; then | |
versions[$package]=$head_version | |
fi | |
done | |
for package in "${!versions[@]}"; do | |
echo "Releasing $package at version ${versions[$package]}" | |
# Build the tag name | |
if [[ "$package" == "." ]]; then | |
# If the package is the root, use the version as the tag name | |
tag_name="${versions[$package]}" | |
else | |
# If the package is not the root, use the package name and version as the tag name | |
tag_name="$package/${versions[$package]}" | |
fi | |
# Get the changelog entries since last release | |
# TODO: Implement this | |
# changelog_content=$(git diff $BASE_REF...$HEAD_REF -- $package/CHANGELOG.md | grep -A 1000 "^+##" | grep -v "^+++" | sed 's/^+//') | |
is_prerelease=$(echo "${versions[$package]}" | grep -qvE '^[0-9]+\.[0-9]+\.[0-9]+$' && echo true || echo false) | |
# Create the tag | |
gh api repos/{owner}/{repo}/git/refs \ | |
-f ref="refs/tags/$tag_name" \ | |
-f sha=$HEAD_SHA | |
# Create the release | |
gh api repos/{owner}/{repo}/releases --input - << EOF | |
{ | |
"tag_name": "$tag_name", | |
"name": "$tag_name", | |
"body": "See $package/CHANGELOG.md for details", | |
"prerelease": $is_prerelease | |
} | |
EOF | |
done |