meta_files:
default: true
type: boolean
+ origin:
+ required: false
+ default: ''
+ type: string
secrets:
GPG_SIGNING_KEY:
required: false
workflow_dispatch:
inputs:
version:
- description: Version tag (YYYY.MM.DD[.REV])
+ description: |
+ VERSION: yyyy.mm.dd[.rev] or rev
required: true
type: string
channel:
- description: Update channel (stable/nightly/...)
+ description: |
+ SOURCE of this build's updates: stable/nightly/master/<repo>
required: true
default: stable
type: string
description: SHA2-256SUMS, SHA2-512SUMS, _update_spec
default: true
type: boolean
+ origin:
+ description: .
+ required: false
+ default: ''
+ type: choice
+ options:
+ - ''
permissions:
contents: read
jobs:
+ process:
+ runs-on: ubuntu-latest
+ outputs:
+ origin: ${{ steps.process_origin.outputs.origin }}
+ steps:
+ - name: Process origin
+ id: process_origin
+ run: |
+ echo "origin=${{ inputs.origin || github.repository }}" >> "$GITHUB_OUTPUT"
+
unix:
+ needs: process
if: inputs.unix
runs-on: ubuntu-latest
steps:
run: |
sudo apt -y install zip pandoc man sed
reqs=$(mktemp)
- cat > $reqs << EOF
+ cat > "$reqs" << EOF
python=3.10.*
pyinstaller
cffi
brotli-python
+ secretstorage
EOF
- sed '/^brotli.*/d' requirements.txt >> $reqs
- mamba create -n build --file $reqs
+ sed -E '/^(brotli|secretstorage).*/d' requirements.txt >> "$reqs"
+ mamba create -n build --file "$reqs"
- name: Prepare
run: |
- python devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python devscripts/make_lazy_extractors.py
- name: Build Unix platform-independent binary
run: |
yt-dlp_linux.zip
linux_arm:
+ needs: process
if: inputs.linux_arm
permissions:
contents: read
run: |
cd repo
python3.8 -m pip install -U Pyinstaller -r requirements.txt # Cached version may be out of date
- python3.8 devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python3.8 devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python3.8 devscripts/make_lazy_extractors.py
python3.8 pyinst.py
repo/dist/yt-dlp_linux_${{ (matrix.architecture == 'armv7' && 'armv7l') || matrix.architecture }}
macos:
+ needs: process
if: inputs.macos
runs-on: macos-11
- name: Prepare
run: |
- python3 devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python3 devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python3 devscripts/make_lazy_extractors.py
- name: Build
run: |
dist/yt-dlp_macos.zip
macos_legacy:
+ needs: process
if: inputs.macos_legacy
runs-on: macos-latest
- name: Prepare
run: |
- python3 devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python3 devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python3 devscripts/make_lazy_extractors.py
- name: Build
run: |
dist/yt-dlp_macos_legacy
windows:
+ needs: process
if: inputs.windows
runs-on: windows-latest
- name: Prepare
run: |
- python devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python devscripts/make_lazy_extractors.py
- name: Build
run: |
dist/yt-dlp_win.zip
windows32:
+ needs: process
if: inputs.windows32
runs-on: windows-latest
- name: Prepare
run: |
- python devscripts/update-version.py -c ${{ inputs.channel }} ${{ inputs.version }}
+ python devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python devscripts/make_lazy_extractors.py
- name: Build
run: |
meta_files:
if: inputs.meta_files && always() && !cancelled()
needs:
+ - process
- unix
- linux_arm
- macos