Files
tidal-dl/.github/workflows/on-release-master.yml
T
Robert Honz d3164f48de ✨ Add Python 3.13 support and update dependencies
Extends Python version support to include 3.13 in CI workflows,
tox environments, and documentation. Updates dependencies to
ensure compatibility with the new Python version and resolves
legacy workarounds for macOS GitHub Actions runners.

Upgrades include:
- `pyside6` to version 6.9.1
- `click` to version 8.2.1
- Other relevant dependency updates for compatibility.

Re-enables `pyupgrade` pre-commit hook targeting Python 3.12+.

Fixed binary creation for Intel macOS.
2025-07-01 08:04:21 +02:00

169 lines
6.8 KiB
YAML

name: release-master
permissions:
contents: write
defaults:
run:
shell: bash
on:
# release:
# types: [published]
# branches: [master]
push:
tags:
- "v*.*.*"
env:
ASSET_EXTENSION: ".zip"
OUT_NAME_FILE: "TIDAL-Downloader-NG"
ARCH_MACOS_X64: "macos-x64"
ARCH_MACOS_ARM64: "macos-arm64"
ARCH_LINUX_X64: "linux-x64"
ARCH_LINUX_ARM64: "linux-arm64"
ARCH_WINDOWS_X64: "windows-x64"
ARCH_WINDOWS_ARM64: "windows-arm"
jobs:
publish:
runs-on: ubuntu-24.04
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up the environment
uses: ./.github/actions/setup-poetry-env
- name: Export tag
id: vars
run: echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT
- name: Build and publish (PyPi)
run: |
source .venv/bin/activate
poetry version $RELEASE_VERSION
make build-and-publish
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
POETRY_REQUESTS_TIMEOUT: 120
- name: GitHub Release -- Create
id: release_create
uses: softprops/action-gh-release@v2
with:
draft: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-docs:
needs: publish
runs-on: ubuntu-24.04
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up the environment
uses: ./.github/actions/setup-poetry-env
- name: Deploy documentation
run: poetry run mkdocs gh-deploy --force
compute:
# Workaround to be able to use variables in matrix.
# See: https://stackoverflow.com/questions/74072206/github-actions-use-variables-in-matrix-definition
runs-on: ubuntu-24.04
outputs:
ASSET_EXTENSION: ${{ env.ASSET_EXTENSION }}
OUT_NAME_FILE: ${{ env.OUT_NAME_FILE }}
ARCH_MACOS_X64: ${{ env.ARCH_MACOS_X64 }}
ARCH_MACOS_ARM64: ${{ env.ARCH_MACOS_ARM64 }}
ARCH_LINUX_X64: ${{ env.ARCH_LINUX_X64 }}
ARCH_LINUX_ARM64: ${{ env.ARCH_LINUX_ARM64 }}
ARCH_WINDOWS_X64: ${{ env.ARCH_WINDOWS_X64 }}
ARCH_WINDOWS_ARM64: ${{ env.ARCH_WINDOWS_ARM64 }}
steps:
- name: Compute outputs
run: |
echo "ASSET_EXTENSION=${{ env.ASSET_EXTENSION }}" >> $GITHUB_OUTPUT
echo "OUT_NAME_FILE=${{ env.OUT_NAME_FILE }}" >> $GITHUB_OUTPUT
echo "ARCH_MACOS_X64=${{ env.ARCH_MACOS_X64 }}" >> $GITHUB_OUTPUT
echo "ARCH_MACOS_ARM64=${{ env.ARCH_MACOS_ARM64 }}" >> $GITHUB_OUTPUT
echo "ARCH_LINUX_X64=${{ env.ARCH_LINUX_X64 }}" >> $GITHUB_OUTPUT
echo "ARCH_LINUX_ARM64=${{ env.ARCH_LINUX_ARM64 }}" >> $GITHUB_OUTPUT
echo "ARCH_WINDOWS_X64=${{ env.ARCH_WINDOWS_X64 }}" >> $GITHUB_OUTPUT
echo "ARCH_WINDOWS_ARM64=${{ env.ARCH_WINDOWS_ARM64 }}" >> $GITHUB_OUTPUT
build-gui-and-upload-assets:
needs: ["publish", "compute"]
strategy:
fail-fast: false
matrix:
include:
- os: "macos-13"
TARGET: "macos-13"
OS_ARCH: ${{needs.compute.outputs.ARCH_MACOS_X64}}
CMD_BUILD: >
brew install create-dmg &&
source $VENV &&
poetry run make gui-macos-dmg-intel APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_MACOS_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}}.dmg -x "*.DS_Store" &&
cd ..
- os: "macos-14"
TARGET: "macos-14 M1"
OS_ARCH: ${{needs.compute.outputs.ARCH_MACOS_ARM64}}
CMD_BUILD: >
brew install create-dmg &&
source $VENV &&
poetry run make gui-macos-dmg APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_MACOS_ARM64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}}.dmg -x "*.DS_Store" &&
cd ..
- os: "ubuntu-22.04"
TARGET: "ubuntu-22.04"
OS_ARCH: ${{needs.compute.outputs.ARCH_LINUX_X64}}
CMD_BUILD: >
source $VENV &&
poetry run make gui-linux APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_LINUX_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd ..
- os: "ubuntu-22.04-arm"
TARGET: "ubuntu-22.04-arm"
OS_ARCH: ${{needs.compute.outputs.ARCH_LINUX_ARM64}}
CMD_BUILD: >
source $VENV &&
poetry run make gui-linux APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_LINUX_ARM64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd ..
- os: "windows-2022"
TARGET: "windows-2022"
OS_ARCH: ${{needs.compute.outputs.ARCH_WINDOWS_X64}}
CMD_BUILD: >
choco install zip make -y &&
source $VENV &&
poetry run make gui-windows APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_WINDOWS_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd ..
- os: "windows-11-arm"
TARGET: "windows-11-arm"
OS_ARCH: ${{needs.compute.outputs.ARCH_WINDOWS_ARM64}}
CMD_BUILD: >
choco install zip make -y &&
source $VENV &&
poetry run make gui-windows APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_WINDOWS_ARM64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd ..
runs-on: ${{ matrix.os }}
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up the environment
uses: ./.github/actions/setup-poetry-env
- name: Build with pyinstaller for ${{matrix.TARGET}}
run: ${{matrix.CMD_BUILD}}
- name: Upload Release Asset
id: upload-release-asset
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
files: |
./dist/${{needs.compute.outputs.OUT_NAME_FILE}}_${{matrix.OS_ARCH}}${{needs.compute.outputs.ASSET_EXTENSION}}