name: Release env: GIT_AUTHOR_EMAIL: "packages@datadoghq.com" GIT_AUTHOR_NAME: "ci.datadog-api-spec" on: pull_request: types: [closed] branches: - master 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: tibdex/github-app-token@v1 with: app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} - name: Create release uses: actions/github-script@v5 env: RELEASE_BRANCH: ${{ github.head_ref }} with: github-token: ${{ steps.get_token.outputs.token }} script: | const tagName = process.env.RELEASE_BRANCH.split("/")[1]; await github.rest.git.createRef({ owner: context.repo.owner, repo: context.repo.repo, ref: `refs/tags/${tagName}`, sha: context.payload.pull_request.merge_commit_sha, }); await github.rest.repos.createRelease({ owner: context.repo.owner, repo: context.repo.repo, generate_release_notes: true, tag_name: tagName, }); - uses: actions/checkout@v2 with: fetch-depth: 0 token: ${{ steps.get_token.outputs.token }} - name: Setup Git run: | git config user.name "${GIT_AUTHOR_NAME}" git config user.email "${GIT_AUTHOR_EMAIL}" - name: Set up Ruby 2.6 uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - name: Bump Gem version run: | git switch -c "${POST_RELEASE_BRANCH}" bundle install bundle exec gem bump -v dev git push -f --set-upstream origin "${POST_RELEASE_BRANCH}" env: POST_RELEASE_BRANCH: post-${{ github.head_ref }} - name: Create PR uses: actions/github-script@v5 env: POST_RELEASE_BRANCH: post-${{ github.head_ref }} BASE: master with: github-token: ${{ steps.get_token.outputs.token }} script: | const { data: pr } = await github.rest.pulls.create({ owner: context.repo.owner, repo: context.repo.repo, head: process.env.POST_RELEASE_BRANCH, base: process.env.BASE, title: "Post release", body: "Bump to dev version", }); await github.rest.issues.addLabels({ issue_number: pr.number, owner: context.repo.owner, repo: context.repo.repo, labels: ["changelog/no-changelog"], });