summaryrefslogtreecommitdiff
path: root/.github/workflows/on-release-master.yml
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-07-03 11:32:28 +0200
committerRobert Honz <exislow+github@gmail.com>2025-07-03 11:32:28 +0200
commit6f499057aafdcfa452a17c8595fa2c8dc436b159 (patch)
tree23033df37fa97806ff413b0b22f26837b3b0ebb5 /.github/workflows/on-release-master.yml
parentfa1ea1fc87344d34c1f86f21b2c6b7afafff45bd (diff)
downloadtidal-dl-ng-6f499057aafdcfa452a17c8595fa2c8dc436b159.tar.gz
chore(workflow): 🚀 Add release and test build GitHub Actions workflow
- Introduced a new workflow for managing releases and test builds. - Configured jobs for publishing, deploying documentation, and building GUI assets for multiple platforms. - Set up environment variables and matrix strategy for cross-platform builds.
Diffstat (limited to '.github/workflows/on-release-master.yml')
-rw-r--r--.github/workflows/on-release-master.yml168
1 files changed, 0 insertions, 168 deletions
diff --git a/.github/workflows/on-release-master.yml b/.github/workflows/on-release-master.yml
deleted file mode 100644
index 44cc708..0000000
--- a/.github/workflows/on-release-master.yml
+++ /dev/null
@@ -1,168 +0,0 @@
-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}}