mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-08 18:30:37 +00:00
126 lines
4.1 KiB
YAML
126 lines
4.1 KiB
YAML
|
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: |
|
||
|
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/*
|
||
|
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
|
||
|
|
||
|
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 }}
|