diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f18974c8dc..bcad96a081 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,5 @@ .github/CODEOWNERS* @DataDog/agent-integrations +.github/workflows/* @DataDog/agent-integrations # Documentation **/README.md @DataDog/documentation diff --git a/.github/workflows/release-trigger.yml b/.github/workflows/release-trigger.yml new file mode 100644 index 0000000000..a8d9d085dc --- /dev/null +++ b/.github/workflows/release-trigger.yml @@ -0,0 +1,72 @@ +name: Trigger Wheel Builds + +# Thin wrapper — all tagging and dispatch logic lives in integrations-core's +# reusable release-dispatch.yml workflow. + +on: + push: + branches: + - master + paths: + - "*/CHANGELOG.md" + - "*/datadog_checks/*/__about__.py" + workflow_dispatch: + inputs: + packages: + description: >- + Packages to release. JSON array (e.g. '["postgres","datadog_checks_base"]'), + 'all' to release every Python package in the repo, or omit to auto-detect from new tags. + required: false + type: string + source-repo-ref: + description: "Commit SHA or ref to build from" + required: true + type: string + target: + description: "Target environment (dev or prod)" + required: false + type: choice + options: + - dev + - prod + default: dev + dry-run: + description: "Print what would be released without pushing tags or starting builds" + required: false + type: boolean + default: false + ddev-version: + description: "ddev version, pinned by default." + required: false + type: string + +jobs: + context: + name: Detect release context + runs-on: ubuntu-latest + outputs: + is-stable-release: ${{ steps.detect.outputs.is-stable-release }} + steps: + - id: detect + run: | + if [[ "$GITHUB_REF" == refs/heads/master ]]; then + echo "is-stable-release=true" >> "$GITHUB_OUTPUT" + else + echo "is-stable-release=false" >> "$GITHUB_OUTPUT" + fi + + dispatch: + name: Release + needs: context + uses: DataDog/integrations-core/.github/workflows/release-dispatch.yml@master + with: + source-repo: integrations-extras + packages: ${{ inputs.packages || '' }} + source-repo-ref: ${{ inputs.source-repo-ref || github.sha }} + target: ${{ inputs.target || 'dev' }} + dry-run: ${{ inputs.dry-run || false }} + ddev-version: ${{ inputs.ddev-version || '' }} + is-stable-release: ${{ needs.context.outputs.is-stable-release }} + permissions: + id-token: write + contents: write