Create RC PR #785
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: Create RC PR | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 14 * * 2,4" # Run on Tuesday and Thursday at 14:00 UTC | |
| - cron: "0 8 * * 2,4" # Same as above but at 08:00 UTC, to warn agent-integrations team about releasing | |
| - cron: "0 9 * * 1" # Run Agent 6 workflow on Monday at 09:00 UTC | |
| env: | |
| IS_AGENT6_RELEASE: ${{ github.event.schedule == '0 9 * * 1' }} | |
| permissions: {} | |
| jobs: | |
| find_release_branches: | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: main | |
| outputs: | |
| branches: ${{ steps.branches.outputs.value }} | |
| warning: ${{ steps.warning.outputs.value }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| sparse-checkout: | | |
| .dda | |
| .github | |
| tasks | |
| persist-credentials: false | |
| - name: Install dda | |
| uses: ./.github/actions/install-dda | |
| with: | |
| features: legacy-tasks | |
| - name: Check previous agent 6 RC status | |
| if: ${{ env.IS_AGENT6_RELEASE == 'true' }} | |
| env: | |
| DD_SITE: "datadoghq.com" | |
| DD_API_KEY: ${{ secrets.DD_API_KEY }} | |
| DD_APP_KEY: ${{ secrets.DD_APP_KEY }} | |
| SLACK_DATADOG_AGENT_BOT_TOKEN: ${{ secrets.SLACK_DATADOG_AGENT_BOT_TOKEN }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| dda inv -- -e release.check-previous-agent6-rc | |
| - name: Determine the release active branches | |
| id: branches | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| if ${{ env.IS_AGENT6_RELEASE == 'true' }}; then | |
| echo "value=[\"6.53.x\"]" >> $GITHUB_OUTPUT | |
| else | |
| echo "value=$(dda inv -- release.get-unreleased-release-branches)" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Set the warning option | |
| id: warning | |
| if: github.event.schedule == '0 8 * * 2,4' | |
| run: | | |
| echo "value=-w" >> $GITHUB_OUTPUT | |
| create_rc_pr: | |
| runs-on: ubuntu-latest | |
| needs: find_release_branches | |
| if: ${{ needs.find_release_branches.outputs.branches != '[]' && needs.find_release_branches.outputs.branches != '' }} | |
| environment: | |
| name: main | |
| permissions: | |
| id-token: write # This is required for getting the required OIDC token from GitHub | |
| strategy: | |
| matrix: | |
| value: ${{fromJSON(needs.find_release_branches.outputs.branches)}} | |
| fail-fast: false | |
| steps: | |
| - uses: DataDog/dd-octo-sts-action@acaa02eee7e3bb0839e4272dacb37b8f3b58ba80 # v1.0.3 | |
| id: octo-sts | |
| with: | |
| scope: DataDog/datadog-agent | |
| policy: self.create-rc-pr.create-pr | |
| - name: Checkout the main branch | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: true | |
| token: ${{ steps.octo-sts.outputs.token }} | |
| - name: Install dda | |
| uses: ./.github/actions/install-dda | |
| with: | |
| features: legacy-tasks | |
| - name: Check for changes since last RC | |
| id: check_for_changes | |
| env: | |
| ATLASSIAN_USERNAME: ${{ secrets.ATLASSIAN_USERNAME }} | |
| ATLASSIAN_PASSWORD: ${{ secrets.ATLASSIAN_PASSWORD }} | |
| SLACK_DATADOG_AGENT_BOT_TOKEN: ${{ secrets.SLACK_DATADOG_AGENT_BOT_TOKEN }} | |
| MATRIX: ${{ matrix.value }} | |
| WARNING: ${{ needs.find_release_branches.outputs.warning }} | |
| run: | | |
| if ! dda inv -- -e release.check-for-changes -r "$MATRIX" $WARNING; then | |
| echo "CHANGES=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "CHANGES=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Check if agent 6 is in qualification phase | |
| if: ${{ env.IS_AGENT6_RELEASE == 'true' }} | |
| env: | |
| SLACK_DATADOG_AGENT_BOT_TOKEN: ${{ secrets.SLACK_DATADOG_AGENT_BOT_TOKEN }} | |
| run: | | |
| is_qualification=$(dda inv -- -e release.is-qualification -r 6.53.x --output) | |
| echo "IS_QUALIFICATION=$is_qualification" >> $GITHUB_ENV | |
| if [[ "$is_qualification" == "true" && "${{ steps.check_for_changes.outputs.CHANGES }}" == "false" ]]; then | |
| dda inv -- -e release.alert-ci-on-call -r 6.53.x | |
| fi | |
| - name: Create RC PR | |
| if: ${{ needs.find_release_branches.outputs.warning == '' && (steps.check_for_changes.outputs.CHANGES == 'true' || ( env.IS_AGENT6_RELEASE == 'true' && env.IS_QUALIFICATION == 'false')) }} | |
| env: | |
| MATRIX: ${{ matrix.value }} | |
| SLACK_DATADOG_AGENT_BOT_TOKEN: ${{ secrets.SLACK_DATADOG_AGENT_BOT_TOKEN }} | |
| GITHUB_TOKEN: ${{ steps.octo-sts.outputs.token }} | |
| run: | | |
| if ${{ env.IS_AGENT6_RELEASE == 'true' }}; then | |
| dda inv -- -e release.create-rc -r "$MATRIX" --patch-version | |
| else | |
| dda inv -- -e release.create-rc -r "$MATRIX" | |
| fi |