🌟 Bump version to v0.12.7 #46
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: release-master | |
permissions: | |
contents: write | |
defaults: | |
run: | |
shell: bash | |
on: | |
# release: | |
# types: [published] | |
# branches: [master] | |
push: | |
tags: | |
- "v*.*.*" | |
env: | |
RELEASE_UPLOAD_URL: "release_upload_url" | |
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_WINDOWS_X64: "windows-x64" | |
jobs: | |
publish: | |
runs-on: ubuntu-latest | |
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 | |
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 }} | |
- name: GitHub Release | |
id: release_create | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Output Release URL File | |
run: echo "${{steps.release_create.outputs.upload_url}}" > ${{env.RELEASE_UPLOAD_URL}}.txt | |
- name: Save Upload URL File for publish | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{env.RELEASE_UPLOAD_URL}} | |
path: ${{env.RELEASE_UPLOAD_URL}}.txt | |
deploy-docs: | |
needs: publish | |
runs-on: ubuntu-latest | |
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-latest | |
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_WINDOWS_X64: ${{ env.ARCH_WINDOWS_X64 }} | |
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_WINDOWS_X64=${{ env.ARCH_WINDOWS_X64 }}" >> $GITHUB_OUTPUT | |
build-gui-and-upload-assets: | |
needs: ["publish", "compute"] | |
env: | |
ASSET_MIME: "application/zip" | |
strategy: | |
fail-fast: false | |
matrix: | |
#os: ["ubuntu-20.04", "windows-2019", "macos-11", "macos-13"] | |
include: | |
- os: "macos-11" | |
TARGET: "macos-11" | |
OS_ARCH: ${{needs.compute.outputs.ARCH_MACOS_X64}} | |
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_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}}.dmg -x "*.DS_Store" && | |
cd .. | |
# - os: "macos-13-xlarge" | |
# TARGET: "macos-13-xlarge M1" | |
# CMD_BUILD: > | |
# brew install create-dmg && | |
# source $VENV && | |
# poetry run make gui-macos 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-20.04" | |
TARGET: "ubuntu-20.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: "windows-2019" | |
TARGET: "windows-2019" | |
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 .. | |
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: Load Release URL File from release job | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{env.RELEASE_UPLOAD_URL}} | |
- name: Get Release File Name & Upload URL | |
id: get_release_info | |
run: | | |
VALUE=`cat ${{env.RELEASE_UPLOAD_URL}}.txt` | |
echo "upload_url=$VALUE" >> $GITHUB_OUTPUT | |
- name: Upload Release Asset | |
# TODO: Switch to https://github.com/softprops/action-gh-release | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
with: | |
upload_url: ${{steps.get_release_info.outputs.upload_url}} | |
asset_path: ./dist/${{needs.compute.outputs.OUT_NAME_FILE}}_${{matrix.OS_ARCH}}${{needs.compute.outputs.ASSET_EXTENSION}} | |
asset_name: ${{needs.compute.outputs.OUT_NAME_FILE}}_${{matrix.OS_ARCH}}${{needs.compute.outputs.ASSET_EXTENSION}} | |
asset_content_type: ${{env.ASSET_MIME}} |