- - uses: actions/checkout@v3
- - uses: actions/download-artifact@v3
-
- - name: Get Changelog
- run: |
- changelog=$(grep -oPz '(?s)(?<=### ${{ needs.prepare.outputs.ytdlp_version }}\n{2}).+?(?=\n{2,3}###)' Changelog.md) || true
- echo "changelog<<EOF" >> $GITHUB_ENV
- echo "$changelog" >> $GITHUB_ENV
- echo "EOF" >> $GITHUB_ENV
- - name: Make Update spec
- run: |
- echo "# This file is used for regulating self-update" >> _update_spec
- echo "lock 2022.07.18 .+ Python 3.6" >> _update_spec
- - name: Make SHA2-SUMS files
- run: |
- sha256sum artifact/yt-dlp | awk '{print $1 " yt-dlp"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp.tar.gz | awk '{print $1 " yt-dlp.tar.gz"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp.exe | awk '{print $1 " yt-dlp.exe"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_win.zip | awk '{print $1 " yt-dlp_win.zip"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_min.exe | awk '{print $1 " yt-dlp_min.exe"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_x86.exe | awk '{print $1 " yt-dlp_x86.exe"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_macos | awk '{print $1 " yt-dlp_macos"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_macos.zip | awk '{print $1 " yt-dlp_macos.zip"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_macos_legacy | awk '{print $1 " yt-dlp_macos_legacy"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_linux_armv7l | awk '{print $1 " yt-dlp_linux_armv7l"}' >> SHA2-256SUMS
- sha256sum artifact/yt-dlp_linux_aarch64 | awk '{print $1 " yt-dlp_linux_aarch64"}' >> SHA2-256SUMS
- sha256sum artifact/dist/yt-dlp_linux | awk '{print $1 " yt-dlp_linux"}' >> SHA2-256SUMS
- sha256sum artifact/dist/yt-dlp_linux.zip | awk '{print $1 " yt-dlp_linux.zip"}' >> SHA2-256SUMS
- sha512sum artifact/yt-dlp | awk '{print $1 " yt-dlp"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp.tar.gz | awk '{print $1 " yt-dlp.tar.gz"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp.exe | awk '{print $1 " yt-dlp.exe"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_win.zip | awk '{print $1 " yt-dlp_win.zip"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_min.exe | awk '{print $1 " yt-dlp_min.exe"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_x86.exe | awk '{print $1 " yt-dlp_x86.exe"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_macos | awk '{print $1 " yt-dlp_macos"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_macos.zip | awk '{print $1 " yt-dlp_macos.zip"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_macos_legacy | awk '{print $1 " yt-dlp_macos_legacy"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_linux_armv7l | awk '{print $1 " yt-dlp_linux_armv7l"}' >> SHA2-512SUMS
- sha512sum artifact/yt-dlp_linux_aarch64 | awk '{print $1 " yt-dlp_linux_aarch64"}' >> SHA2-512SUMS
- sha512sum artifact/dist/yt-dlp_linux | awk '{print $1 " yt-dlp_linux"}' >> SHA2-512SUMS
- sha512sum artifact/dist/yt-dlp_linux.zip | awk '{print $1 " yt-dlp_linux.zip"}' >> SHA2-512SUMS
-
- - name: Publish Release
- uses: yt-dlp/action-gh-release@v1
- with:
- tag_name: ${{ needs.prepare.outputs.ytdlp_version }}
- name: yt-dlp ${{ needs.prepare.outputs.ytdlp_version }}
- target_commitish: ${{ needs.prepare.outputs.head_sha }}
- body: |
- #### [A description of the various files]((https://github.com/yt-dlp/yt-dlp#release-files)) are in the README
-
- ---
- <details open><summary><h3>Changelog</summary>
- <p>
-
- ${{ env.changelog }}
-
- </p>
- </details>
- files: |
- SHA2-256SUMS
- SHA2-512SUMS
- artifact/yt-dlp
- artifact/yt-dlp.tar.gz
- artifact/yt-dlp.exe
- artifact/yt-dlp_win.zip
- artifact/yt-dlp_min.exe
- artifact/yt-dlp_x86.exe
- artifact/yt-dlp_macos
- artifact/yt-dlp_macos.zip
- artifact/yt-dlp_macos_legacy
- artifact/yt-dlp_linux_armv7l
- artifact/yt-dlp_linux_aarch64
- artifact/dist/yt-dlp_linux
- artifact/dist/yt-dlp_linux.zip
- _update_spec
+ - uses: actions/download-artifact@v4
+ with:
+ path: artifact
+ pattern: build-bin-*
+ merge-multiple: true
+
+ - name: Make SHA2-SUMS files
+ run: |
+ cd ./artifact/
+ # make sure SHA sums are also printed to stdout
+ sha256sum * | tee ../SHA2-256SUMS
+ sha512sum * | tee ../SHA2-512SUMS
+
+ - name: Make Update spec
+ run: |
+ cat >> _update_spec << EOF
+ # This file is used for regulating self-update
+ lock 2022.08.18.36 .+ Python 3\.6
+ lock 2023.11.16 (?!win_x86_exe).+ Python 3\.7
+ lock 2023.11.16 win_x86_exe .+ Windows-(?:Vista|2008Server)
+ lockV2 yt-dlp/yt-dlp 2022.08.18.36 .+ Python 3\.6
+ lockV2 yt-dlp/yt-dlp 2023.11.16 (?!win_x86_exe).+ Python 3\.7
+ lockV2 yt-dlp/yt-dlp 2023.11.16 win_x86_exe .+ Windows-(?:Vista|2008Server)
+ lockV2 yt-dlp/yt-dlp-nightly-builds 2023.11.15.232826 (?!win_x86_exe).+ Python 3\.7
+ lockV2 yt-dlp/yt-dlp-nightly-builds 2023.11.15.232826 win_x86_exe .+ Windows-(?:Vista|2008Server)
+ lockV2 yt-dlp/yt-dlp-master-builds 2023.11.15.232812 (?!win_x86_exe).+ Python 3\.7
+ lockV2 yt-dlp/yt-dlp-master-builds 2023.11.15.232812 win_x86_exe .+ Windows-(?:Vista|2008Server)
+ EOF
+
+ - name: Sign checksum files
+ env:
+ GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
+ if: env.GPG_SIGNING_KEY != ''
+ run: |
+ gpg --batch --import <<< "${{ secrets.GPG_SIGNING_KEY }}"
+ for signfile in ./SHA*SUMS; do
+ gpg --batch --detach-sign "$signfile"
+ done
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: build-${{ github.job }}
+ path: |
+ _update_spec
+ SHA*SUMS*
+ compression-level: 0
+ overwrite: true