]>
Commit | Line | Data |
---|---|---|
915f2a92 U |
1 | name: Build |
2 | ||
3 | on: | |
4 | push: | |
5 | branches: | |
6 | - release | |
7 | ||
8 | jobs: | |
93721ed0 | 9 | build_unix: |
915f2a92 U |
10 | runs-on: ubuntu-latest |
11 | ||
12 | outputs: | |
7a5c1cfe | 13 | ytdlp_version: ${{ steps.bump_version.outputs.ytdlp_version }} |
915f2a92 | 14 | upload_url: ${{ steps.create_release.outputs.upload_url }} |
4c88ff87 | 15 | sha256_bin: ${{ steps.sha256_bin.outputs.sha256_bin }} |
16 | sha512_bin: ${{ steps.sha512_bin.outputs.sha512_bin }} | |
17 | sha256_tar: ${{ steps.sha256_tar.outputs.sha256_tar }} | |
18 | sha512_tar: ${{ steps.sha512_tar.outputs.sha512_tar }} | |
915f2a92 U |
19 | |
20 | steps: | |
21 | - uses: actions/checkout@v2 | |
4c88ff87 | 22 | with: |
23 | fetch-depth: 0 | |
915f2a92 U |
24 | - name: Set up Python |
25 | uses: actions/setup-python@v2 | |
26 | with: | |
764876a0 | 27 | python-version: '3.8' |
915f2a92 U |
28 | - name: Install packages |
29 | run: sudo apt-get -y install zip pandoc man | |
30 | - name: Bump version | |
31 | id: bump_version | |
4c88ff87 | 32 | run: | |
33 | python devscripts/update-version.py | |
34 | make issuetemplates | |
e38df8f9 | 35 | - name: Print version |
7a5c1cfe | 36 | run: echo "${{ steps.bump_version.outputs.ytdlp_version }}" |
4c88ff87 | 37 | - name: Update master |
38 | id: push_update | |
39 | run: | | |
40 | git config --global user.email "${{ github.event.pusher.email }}" | |
41 | git config --global user.name "${{ github.event.pusher.name }}" | |
42 | git add -u | |
43 | git commit -m "[version] update" -m ":ci skip all" | |
44 | git pull --rebase origin ${{ github.event.repository.master_branch }} | |
45 | git push origin ${{ github.event.ref }}:${{ github.event.repository.master_branch }} | |
46 | echo ::set-output name=head_sha::$(git rev-parse HEAD) | |
47 | - name: Get Changelog | |
48 | id: get_changelog | |
49 | run: | | |
50 | changelog=$(cat Changelog.md | grep -oPz '(?s)(?<=### ${{ steps.bump_version.outputs.ytdlp_version }}\n{2}).+?(?=\n{2,3}###)') | |
51 | echo "changelog<<EOF" >> $GITHUB_ENV | |
52 | echo "$changelog" >> $GITHUB_ENV | |
53 | echo "EOF" >> $GITHUB_ENV | |
915f2a92 | 54 | - name: Run Make |
ed64ce59 | 55 | run: make all tar |
4c88ff87 | 56 | - name: Get SHA2-256SUMS for yt-dlp |
57 | id: sha256_bin | |
58 | run: echo "::set-output name=sha256_bin::$(sha256sum yt-dlp | awk '{print $1}')" | |
59 | - name: Get SHA2-256SUMS for yt-dlp.tar.gz | |
60 | id: sha256_tar | |
61 | run: echo "::set-output name=sha256_tar::$(sha256sum yt-dlp.tar.gz | awk '{print $1}')" | |
62 | - name: Get SHA2-512SUMS for yt-dlp | |
63 | id: sha512_bin | |
64 | run: echo "::set-output name=sha512_bin::$(sha512sum yt-dlp | awk '{print $1}')" | |
65 | - name: Get SHA2-512SUMS for yt-dlp.tar.gz | |
66 | id: sha512_tar | |
67 | run: echo "::set-output name=sha512_tar::$(sha512sum yt-dlp.tar.gz | awk '{print $1}')" | |
68 | - name: Install SSH private key | |
69 | env: | |
70 | BREW_TOKEN: ${{ secrets.BREW_TOKEN }} | |
71 | if: "env.BREW_TOKEN != ''" | |
72 | uses: webfactory/ssh-agent@v0.5.3 | |
73 | with: | |
74 | ssh-private-key: ${{ env.BREW_TOKEN }} | |
75 | - name: Update Homebrew Formulae | |
76 | env: | |
77 | BREW_TOKEN: ${{ secrets.BREW_TOKEN }} | |
78 | if: "env.BREW_TOKEN != ''" | |
79 | run: | | |
80 | git clone git@github.com:yt-dlp/homebrew-taps taps/ | |
81 | python3 devscripts/update-formulae.py taps/Formula/yt-dlp.rb "${{ steps.bump_version.outputs.ytdlp_version }}" | |
82 | git -C taps/ config user.name github-actions | |
83 | git -C taps/ config user.email github-actions@example.com | |
84 | git -C taps/ commit -am 'yt-dlp: ${{ steps.bump_version.outputs.ytdlp_version }}' | |
85 | git -C taps/ push | |
86 | - name: Install dependencies for pypi | |
87 | env: | |
88 | PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} | |
89 | if: "env.PYPI_TOKEN != ''" | |
90 | run: | | |
91 | python -m pip install --upgrade pip | |
92 | pip install setuptools wheel twine | |
93 | - name: Build and publish on pypi | |
94 | env: | |
95 | TWINE_USERNAME: __token__ | |
96 | TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
97 | if: "env.TWINE_PASSWORD != ''" | |
98 | run: | | |
99 | rm -rf dist/* | |
100 | python setup.py sdist bdist_wheel | |
101 | twine upload dist/* | |
915f2a92 U |
102 | - name: Create Release |
103 | id: create_release | |
104 | uses: actions/create-release@v1 | |
105 | env: | |
106 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
107 | with: | |
7a5c1cfe P |
108 | tag_name: ${{ steps.bump_version.outputs.ytdlp_version }} |
109 | release_name: yt-dlp ${{ steps.bump_version.outputs.ytdlp_version }} | |
4c88ff87 | 110 | commitish: ${{ steps.push_update.outputs.head_sha }} |
915f2a92 U |
111 | body: | |
112 | Changelog: | |
4c88ff87 | 113 | ${{ env.changelog }} |
915f2a92 U |
114 | draft: false |
115 | prerelease: false | |
7a5c1cfe | 116 | - name: Upload yt-dlp Unix binary |
14b17a55 | 117 | id: upload-release-asset |
915f2a92 U |
118 | uses: actions/upload-release-asset@v1 |
119 | env: | |
120 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
121 | with: | |
122 | upload_url: ${{ steps.create_release.outputs.upload_url }} | |
7a5c1cfe P |
123 | asset_path: ./yt-dlp |
124 | asset_name: yt-dlp | |
915f2a92 | 125 | asset_content_type: application/octet-stream |
ed64ce59 | 126 | - name: Upload Source tar |
127 | uses: actions/upload-release-asset@v1 | |
128 | env: | |
129 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
130 | with: | |
131 | upload_url: ${{ steps.create_release.outputs.upload_url }} | |
132 | asset_path: ./yt-dlp.tar.gz | |
133 | asset_name: yt-dlp.tar.gz | |
134 | asset_content_type: application/gzip | |
915f2a92 | 135 | |
7e8772bf | 136 | build_windows: |
915f2a92 | 137 | runs-on: windows-latest |
14b17a55 | 138 | needs: build_unix |
915f2a92 | 139 | |
47930b73 | 140 | outputs: |
4c88ff87 | 141 | sha256_win: ${{ steps.sha256_win.outputs.sha256_win }} |
142 | sha512_win: ${{ steps.sha512_win.outputs.sha512_win }} | |
143 | sha256_win_zip: ${{ steps.sha256_win_zip.outputs.sha256_win_zip }} | |
144 | sha512_win_zip: ${{ steps.sha512_win_zip.outputs.sha512_win_zip }} | |
47930b73 | 145 | |
915f2a92 U |
146 | steps: |
147 | - uses: actions/checkout@v2 | |
0181adef | 148 | # 3.8 is used for Win7 support |
149 | - name: Set up Python 3.8 | |
915f2a92 U |
150 | uses: actions/setup-python@v2 |
151 | with: | |
da8fb75d | 152 | python-version: '3.8' |
55e36f03 | 153 | - name: Upgrade pip and enable wheel support |
154 | run: python -m pip install --upgrade pip setuptools wheel | |
915f2a92 | 155 | - name: Install Requirements |
476febeb | 156 | # Custom pyinstaller built with https://github.com/yt-dlp/pyinstaller-builds |
4c88ff87 | 157 | run: pip install "https://yt-dlp.github.io/Pyinstaller-Builds/x86_64/pyinstaller-4.5.1-py3-none-any.whl" mutagen pycryptodome websockets |
915f2a92 | 158 | - name: Bump version |
e38df8f9 | 159 | id: bump_version |
160 | run: python devscripts/update-version.py | |
161 | - name: Print version | |
7a5c1cfe | 162 | run: echo "${{ steps.bump_version.outputs.ytdlp_version }}" |
915f2a92 | 163 | - name: Run PyInstaller Script |
b3943b2f | 164 | run: python pyinst.py 64 |
7a5c1cfe | 165 | - name: Upload yt-dlp.exe Windows binary |
915f2a92 U |
166 | id: upload-release-windows |
167 | uses: actions/upload-release-asset@v1 | |
168 | env: | |
169 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
170 | with: | |
171 | upload_url: ${{ needs.build_unix.outputs.upload_url }} | |
7a5c1cfe P |
172 | asset_path: ./dist/yt-dlp.exe |
173 | asset_name: yt-dlp.exe | |
98918847 | 174 | asset_content_type: application/vnd.microsoft.portable-executable |
7a5c1cfe | 175 | - name: Get SHA2-256SUMS for yt-dlp.exe |
4c88ff87 | 176 | id: sha256_win |
177 | run: echo "::set-output name=sha256_win::$((Get-FileHash dist\yt-dlp.exe -Algorithm SHA256).Hash.ToLower())" | |
beb982be | 178 | - name: Get SHA2-512SUMS for yt-dlp.exe |
4c88ff87 | 179 | id: sha512_win |
180 | run: echo "::set-output name=sha512_win::$((Get-FileHash dist\yt-dlp.exe -Algorithm SHA512).Hash.ToLower())" | |
181 | - name: Run PyInstaller Script with --onedir | |
182 | run: python pyinst.py 64 --onedir | |
183 | - uses: papeloto/action-zip@v1 | |
184 | with: | |
185 | files: ./dist/yt-dlp | |
186 | dest: ./dist/yt-dlp.zip | |
187 | - name: Upload yt-dlp.zip Windows onedir | |
188 | id: upload-release-windows-zip | |
189 | uses: actions/upload-release-asset@v1 | |
190 | env: | |
191 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
192 | with: | |
193 | upload_url: ${{ needs.build_unix.outputs.upload_url }} | |
194 | asset_path: ./dist/yt-dlp.zip | |
195 | asset_name: yt-dlp.zip | |
196 | asset_content_type: application/zip | |
197 | - name: Get SHA2-256SUMS for yt-dlp.zip | |
198 | id: sha256_win_zip | |
199 | run: echo "::set-output name=sha256_win_zip::$((Get-FileHash dist\yt-dlp.zip -Algorithm SHA256).Hash.ToLower())" | |
200 | - name: Get SHA2-512SUMS for yt-dlp.zip | |
201 | id: sha512_win_zip | |
202 | run: echo "::set-output name=sha512_win_zip::$((Get-FileHash dist\yt-dlp.zip -Algorithm SHA512).Hash.ToLower())" | |
915f2a92 U |
203 | |
204 | build_windows32: | |
915f2a92 | 205 | runs-on: windows-latest |
14b17a55 | 206 | needs: [build_unix, build_windows] |
915f2a92 | 207 | |
47930b73 | 208 | outputs: |
4c88ff87 | 209 | sha256_win32: ${{ steps.sha256_win32.outputs.sha256_win32 }} |
210 | sha512_win32: ${{ steps.sha512_win32.outputs.sha512_win32 }} | |
47930b73 | 211 | |
915f2a92 U |
212 | steps: |
213 | - uses: actions/checkout@v2 | |
0181adef | 214 | # 3.7 is used for Vista support. See https://github.com/yt-dlp/yt-dlp/issues/390 |
215 | - name: Set up Python 3.7 32-Bit | |
915f2a92 U |
216 | uses: actions/setup-python@v2 |
217 | with: | |
0181adef | 218 | python-version: '3.7' |
915f2a92 | 219 | architecture: 'x86' |
55e36f03 | 220 | - name: Upgrade pip and enable wheel support |
0181adef | 221 | run: python -m pip install --upgrade pip setuptools wheel |
222 | - name: Install Requirements | |
4c88ff87 | 223 | run: pip install "https://yt-dlp.github.io/Pyinstaller-Builds/i686/pyinstaller-4.5.1-py3-none-any.whl" mutagen pycryptodome websockets |
915f2a92 | 224 | - name: Bump version |
e38df8f9 | 225 | id: bump_version |
226 | run: python devscripts/update-version.py | |
227 | - name: Print version | |
7a5c1cfe | 228 | run: echo "${{ steps.bump_version.outputs.ytdlp_version }}" |
915f2a92 | 229 | - name: Run PyInstaller Script for 32 Bit |
b3943b2f | 230 | run: python pyinst.py 32 |
7a5c1cfe | 231 | - name: Upload Executable yt-dlp_x86.exe |
915f2a92 U |
232 | id: upload-release-windows32 |
233 | uses: actions/upload-release-asset@v1 | |
234 | env: | |
235 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
236 | with: | |
237 | upload_url: ${{ needs.build_unix.outputs.upload_url }} | |
7a5c1cfe P |
238 | asset_path: ./dist/yt-dlp_x86.exe |
239 | asset_name: yt-dlp_x86.exe | |
98918847 | 240 | asset_content_type: application/vnd.microsoft.portable-executable |
7a5c1cfe | 241 | - name: Get SHA2-256SUMS for yt-dlp_x86.exe |
4c88ff87 | 242 | id: sha256_win32 |
243 | run: echo "::set-output name=sha256_win32::$((Get-FileHash dist\yt-dlp_x86.exe -Algorithm SHA256).Hash.ToLower())" | |
beb982be | 244 | - name: Get SHA2-512SUMS for yt-dlp_x86.exe |
4c88ff87 | 245 | id: sha512_win32 |
246 | run: echo "::set-output name=sha512_win32::$((Get-FileHash dist\yt-dlp_x86.exe -Algorithm SHA512).Hash.ToLower())" | |
14b17a55 | 247 | |
248 | finish: | |
249 | runs-on: ubuntu-latest | |
250 | needs: [build_unix, build_windows, build_windows32] | |
251 | ||
252 | steps: | |
915f2a92 U |
253 | - name: Make SHA2-256SUMS file |
254 | env: | |
4c88ff87 | 255 | SHA256_WIN: ${{ needs.build_windows.outputs.sha256_win }} |
256 | SHA256_WIN_ZIP: ${{ needs.build_windows.outputs.sha256_win_zip }} | |
257 | SHA256_WIN32: ${{ needs.build_windows32.outputs.sha256_win32 }} | |
258 | SHA256_BIN: ${{ needs.build_unix.outputs.sha256_bin }} | |
259 | SHA256_TAR: ${{ needs.build_unix.outputs.sha256_tar }} | |
915f2a92 | 260 | run: | |
4c88ff87 | 261 | echo "${{ env.SHA256_WIN }} yt-dlp.exe" >> SHA2-256SUMS |
262 | echo "${{ env.SHA256_WIN32 }} yt-dlp_x86.exe" >> SHA2-256SUMS | |
263 | echo "${{ env.SHA256_BIN }} yt-dlp" >> SHA2-256SUMS | |
264 | echo "${{ env.SHA256_TAR }} yt-dlp.tar.gz" >> SHA2-256SUMS | |
265 | echo "${{ env.SHA256_WIN_ZIP }} yt-dlp.zip" >> SHA2-256SUMS | |
da6403d3 TOH |
266 | - name: Upload 256SUMS file |
267 | id: upload-sums | |
268 | uses: actions/upload-release-asset@v1 | |
269 | env: | |
270 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
271 | with: | |
272 | upload_url: ${{ needs.build_unix.outputs.upload_url }} | |
273 | asset_path: ./SHA2-256SUMS | |
274 | asset_name: SHA2-256SUMS | |
275 | asset_content_type: text/plain | |
beb982be NA |
276 | - name: Make SHA2-512SUMS file |
277 | env: | |
4c88ff87 | 278 | SHA512_WIN: ${{ needs.build_windows.outputs.sha512_win }} |
279 | SHA512_WIN_ZIP: ${{ needs.build_windows.outputs.sha512_win_zip }} | |
280 | SHA512_WIN32: ${{ needs.build_windows32.outputs.sha512_win32 }} | |
281 | SHA512_BIN: ${{ needs.build_unix.outputs.sha512_bin }} | |
282 | SHA512_TAR: ${{ needs.build_unix.outputs.sha512_tar }} | |
beb982be | 283 | run: | |
4c88ff87 | 284 | echo "${{ env.SHA512_WIN }} yt-dlp.exe" >> SHA2-512SUMS |
285 | echo "${{ env.SHA512_WIN32 }} yt-dlp_x86.exe" >> SHA2-512SUMS | |
286 | echo "${{ env.SHA512_BIN }} yt-dlp" >> SHA2-512SUMS | |
287 | echo "${{ env.SHA512_TAR }} yt-dlp.tar.gz" >> SHA2-512SUMS | |
288 | echo "${{ env.SHA512_WIN_ZIP }} yt-dlp.zip" >> SHA2-512SUMS | |
beb982be NA |
289 | - name: Upload 512SUMS file |
290 | id: upload-512sums | |
291 | uses: actions/upload-release-asset@v1 | |
292 | env: | |
293 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
294 | with: | |
295 | upload_url: ${{ needs.build_unix.outputs.upload_url }} | |
296 | asset_path: ./SHA2-512SUMS | |
297 | asset_name: SHA2-512SUMS | |
298 | asset_content_type: text/plain |