File: make_release.yaml

package info (click to toggle)
beets 2.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,016 kB
  • sloc: python: 46,429; javascript: 8,018; xml: 334; sh: 261; makefile: 125
file content (129 lines) | stat: -rw-r--r-- 3,753 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Make a Beets Release

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Version of the new release, just as a number with no prepended "v"'
        required: true

env:
  PYTHON_VERSION: 3.9
  NEW_VERSION: ${{ inputs.version }}
  NEW_TAG: v${{ inputs.version }}

jobs:
  increment-version:
    name: Bump version, commit and create tag
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Python tools
        uses: BrandonLWhite/pipx-install-action@v1.0.3
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ env.PYTHON_VERSION }}
          cache: poetry

      - name: Install dependencies
        run: poetry install --with=release --extras=docs

      - name: Bump project version
        run: poe bump "${{ env.NEW_VERSION }}"

      - uses: EndBug/add-and-commit@v9
        id: commit_and_tag
        name: Commit the changes and create tag
        with:
          message: "Increment version to ${{ env.NEW_VERSION }}"
          tag: "${{ env.NEW_TAG }} --force"

  build:
    name: Get changelog and build the distribution package
    runs-on: ubuntu-latest
    needs: increment-version
    outputs:
      changelog: ${{ steps.generate_changelog.outputs.changelog }}
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ env.NEW_TAG }}

      - name: Install Python tools
        uses: BrandonLWhite/pipx-install-action@v1.0.3
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ env.PYTHON_VERSION }}
          cache: poetry

      - name: Install dependencies
        run: poetry install --with=release --extras=docs

      - name: Install pandoc
        run: sudo apt update && sudo apt install pandoc -y

      - name: Obtain the changelog
        id: generate_changelog
        run: |
          poe docs
          {
            echo 'changelog<<EOF'
            poe --quiet changelog
            echo EOF
          } >> "$GITHUB_OUTPUT"

      - name: Build a binary wheel and a source tarball
        run: poe build

      - name: Store the distribution packages
        uses: actions/upload-artifact@v4
        with:
          name: python-package-distributions
          path: dist/

  publish-to-pypi:
    name: Publish distribution 📦 to PyPI
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: pypi
      url: https://pypi.org/p/beets
    permissions:
      id-token: write
    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions
          path: dist/
      - name: Publish distribution 📦 to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1

  make-github-release:
    name: Create GitHub release
    runs-on: ubuntu-latest
    needs: [build, publish-to-pypi]
    env:
      CHANGELOG: ${{ needs.build.outputs.changelog }}
    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions
          path: dist/

      - name: Create a GitHub release
        id: make_release
        uses: ncipollo/release-action@v1
        with:
          tag: ${{ env.NEW_TAG }}
          name: Release ${{ env.NEW_TAG }}
          body: ${{ env.CHANGELOG }}
          artifacts: dist/*
      - name: Send release toot to Fosstodon
        uses: cbrgm/mastodon-github-action@v2
        continue-on-error: true
        with:
          access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
          url: ${{ secrets.MASTODON_URL }}
          message: "Version ${{ env.NEW_TAG }} of beets has been released! Check out all of the new changes at ${{ steps.make_release.outputs.html_url }}"