123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- name: Release
- on: workflow_dispatch
- permissions:
- contents: read
- jobs:
- prepare:
- permissions:
- contents: write
- runs-on: ubuntu-latest
- outputs:
- version: ${{ steps.update_version.outputs.version }}
- head_sha: ${{ steps.push_release.outputs.head_sha }}
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v4
- with:
- python-version: "3.10"
- - name: Update version
- id: update_version
- run: |
- python devscripts/update-version.py ${{ vars.PUSH_VERSION_COMMIT == '' && '"$(date -u +"%H%M%S")"' || '' }} | \
- grep -Po "version=\d+\.\d+\.\d+(\.\d+)?" >> "$GITHUB_OUTPUT"
- - name: Update documentation
- run: |
- make doc
- sed '/### /Q' Changelog.md >> ./CHANGELOG
- echo '### ${{ steps.update_version.outputs.version }}' >> ./CHANGELOG
- python ./devscripts/make_changelog.py -vv -c >> ./CHANGELOG
- echo >> ./CHANGELOG
- grep -Poz '(?s)### \d+\.\d+\.\d+.+' 'Changelog.md' | head -n -1 >> ./CHANGELOG
- cat ./CHANGELOG > Changelog.md
- - name: Push to release
- id: push_release
- run: |
- git config --global user.name github-actions
- git config --global user.email github-actions@example.com
- git add -u
- git commit -m "Release ${{ steps.update_version.outputs.version }}" \
- -m "Created by: ${{ github.event.sender.login }}" -m ":ci skip all :ci run dl"
- git push origin --force ${{ github.event.ref }}:release
- echo "head_sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- - name: Update master
- if: vars.PUSH_VERSION_COMMIT != ''
- run: git push origin ${{ github.event.ref }}
- publish_pypi_homebrew:
- needs: prepare
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-python@v4
- with:
- python-version: "3.10"
- - name: Install Requirements
- run: |
- sudo apt-get -y install pandoc man
- python -m pip install -U pip setuptools wheel twine
- python -m pip install -U -r requirements.txt
- - name: Prepare
- run: |
- python devscripts/update-version.py ${{ needs.prepare.outputs.version }}
- python devscripts/make_lazy_extractors.py
- - name: Build and publish on PyPI
- env:
- TWINE_USERNAME: __token__
- TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
- if: env.TWINE_PASSWORD != ''
- run: |
- rm -rf dist/*
- make pypi-files
- python devscripts/set-variant.py pip -M "You installed yt-dlp with pip or using the wheel from PyPi; Use that to update"
- python setup.py sdist bdist_wheel
- twine upload dist/*
- - name: Checkout Homebrew repository
- env:
- BREW_TOKEN: ${{ secrets.BREW_TOKEN }}
- PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
- if: env.BREW_TOKEN != '' && env.PYPI_TOKEN != ''
- uses: actions/checkout@v3
- with:
- repository: yt-dlp/homebrew-taps
- path: taps
- ssh-key: ${{ secrets.BREW_TOKEN }}
- - name: Update Homebrew Formulae
- env:
- BREW_TOKEN: ${{ secrets.BREW_TOKEN }}
- PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
- if: env.BREW_TOKEN != '' && env.PYPI_TOKEN != ''
- run: |
- python devscripts/update-formulae.py taps/Formula/yt-dlp.rb "${{ needs.prepare.outputs.version }}"
- git -C taps/ config user.name github-actions
- git -C taps/ config user.email github-actions@example.com
- git -C taps/ commit -am 'yt-dlp: ${{ needs.prepare.outputs.version }}'
- git -C taps/ push
- build:
- needs: prepare
- uses: ./.github/workflows/build.yml
- with:
- version: ${{ needs.prepare.outputs.version }}
- permissions:
- contents: read
- packages: write # For package cache
- secrets:
- GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
- publish:
- needs: [prepare, build]
- uses: ./.github/workflows/publish.yml
- permissions:
- contents: write
- with:
- version: ${{ needs.prepare.outputs.version }}
- target_commitish: ${{ needs.prepare.outputs.head_sha }}
|