mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	[build] Make linux binary truly standalone using conda (#5423)
				
					
				
			Authored by: mlampe
This commit is contained in:
		
							
								
								
									
										27
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@@ -50,26 +50,43 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  build_unix:
 | 
					  build_unix:
 | 
				
			||||||
    needs: prepare
 | 
					    needs: prepare
 | 
				
			||||||
    runs-on: ubuntu-18.04  # Standalone executable should be built on minimum supported OS
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v3
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
    - uses: actions/setup-python@v4
 | 
					    - uses: actions/setup-python@v4
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
          python-version: '3.10'
 | 
					          python-version: '3.10'
 | 
				
			||||||
 | 
					    - uses: conda-incubator/setup-miniconda@v2
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					          miniforge-variant: Mambaforge
 | 
				
			||||||
 | 
					          use-mamba: true
 | 
				
			||||||
 | 
					          channels: conda-forge
 | 
				
			||||||
 | 
					          auto-update-conda: true
 | 
				
			||||||
 | 
					          activate-environment: ''
 | 
				
			||||||
 | 
					          auto-activate-base: false
 | 
				
			||||||
    - name: Install Requirements
 | 
					    - name: Install Requirements
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
          sudo apt-get -y install zip pandoc man
 | 
					          sudo apt-get -y install zip pandoc man sed
 | 
				
			||||||
          python -m pip install --upgrade pip setuptools wheel twine
 | 
					          python -m pip install -U pip setuptools wheel twine
 | 
				
			||||||
          python -m pip install Pyinstaller -r requirements.txt
 | 
					          python -m pip install -U Pyinstaller -r requirements.txt
 | 
				
			||||||
 | 
					          reqs=$(mktemp)
 | 
				
			||||||
 | 
					          echo -e 'python=3.10.*\npyinstaller' >$reqs
 | 
				
			||||||
 | 
					          sed 's/^brotli.*/brotli-python/' <requirements.txt >>$reqs
 | 
				
			||||||
 | 
					          mamba create -n build --file $reqs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Prepare
 | 
					    - name: Prepare
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
          python devscripts/update-version.py ${{ needs.prepare.outputs.version_suffix }}
 | 
					          python devscripts/update-version.py ${{ needs.prepare.outputs.version_suffix }}
 | 
				
			||||||
          python devscripts/make_lazy_extractors.py
 | 
					          python devscripts/make_lazy_extractors.py
 | 
				
			||||||
    - name: Build Unix executables
 | 
					    - name: Build Unix platform-independent binary
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
          make all tar
 | 
					          make all tar
 | 
				
			||||||
 | 
					    - name: Build Unix standalone binary
 | 
				
			||||||
 | 
					      shell: bash -l {0}
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					          unset LD_LIBRARY_PATH  # Harmful; set by setup-python
 | 
				
			||||||
 | 
					          conda activate build
 | 
				
			||||||
          python pyinst.py --onedir
 | 
					          python pyinst.py --onedir
 | 
				
			||||||
          (cd ./dist/yt-dlp_linux && zip -r ../yt-dlp_linux.zip .)
 | 
					          (cd ./dist/yt-dlp_linux && zip -r ../yt-dlp_linux.zip .)
 | 
				
			||||||
          python pyinst.py
 | 
					          python pyinst.py
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user