File: do-release.yaml

package info (click to toggle)
dnf5 5.4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,960 kB
  • sloc: cpp: 94,312; python: 3,370; xml: 1,073; ruby: 600; sql: 250; ansic: 232; sh: 104; perl: 62; makefile: 30
file content (38 lines) | stat: -rw-r--r-- 1,391 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# from: https://github.com/packit/packit/blob/main/.github/workflows/do_release.yml
name: Create a GitHub release once a release PR is merged

on:
  workflow_dispatch:
  pull_request:
    types:
      - closed

jobs:
  if_merged:
    if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release') && github.repository_owner == 'rpm-software-management'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/create-github-app-token@v1
        id: app-token
        with:
          app-id: ${{ vars.RSM_CI_APP_ID }}
          private-key: ${{ secrets.RSM_CI_APP_PRIVATE_KEY }}

      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.base.ref }}

      - name: Create GitHub release
        run: |
          VERSION=$(grep -oP '^# \K[0-9.]*' CHANGELOG.md | head -n 1)
          # Take the lines between the first two headers from CHANGELOG.md,
          # and use it as a description for the new release.
          CHANGELOG=$(awk 'BEGIN { first = 0 } /^# / { if (first == 0) { first = 1 } else { exit } } /^[^#]/ { print $0 }' CHANGELOG.md)

          gh release create ${VERSION} \
            --target ${{ github.event.pull_request.base.ref }} \
            --draft \
            --title ${VERSION} \
            -n "${CHANGELOG}"
        env:
          GH_TOKEN: ${{ steps.app-token.outputs.token }}