🛠️ Release GUI fix Windows poetry. #14
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 | |
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_LINUX_X64: "linux-x64" | |
ARCH_WINDOWS_X64: "windows-x64" | |
jobs: | |
publish: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- 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@v1 | |
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@v3 | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
run: poetry install --no-interaction --with docs | |
- name: Deploy documentation | |
run: poetry run mkdocs gh-deploy --force | |
compute: | |
# Workaround to be able to use variables in matrix. | |
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_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_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/bin/activate && | |
poetry run make gui-macos && | |
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 .. | |
# TODO: Use M1 runner. | |
# - os: "macos-latest-xlarge" | |
# TARGET: "macos-latest-xlarge" | |
# CMD_BUILD: > | |
# brew install create-dmg && | |
# source .venv/bin/activate && | |
# poetry run make gui-macos && | |
# cd dist && | |
# zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}${{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/bin/activate && | |
poetry run make gui && | |
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 feature enable -n=allowGlobalConfirmation | |
choco install zip | |
choco install make | |
source .venv/scripts/activate && | |
C:\Users\runneradmin\.local\bin\poetry run make gui && | |
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}}.exe && | |
cd .. | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- name: Set up python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
# architecture: "x64" | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies Windows | |
run: | | |
source $VENV | |
dir | |
dir C:\Users\runneradmin\.local\bin | |
poetry install --no-interaction --all-extras --with dev | |
C:\Users\runneradmin\.local\bin\poetry install --no-interaction --all-extras --with dev | |
if: runner.os == 'Windows' | |
shell: bash | |
- name: Install dependencies NOT Windows | |
run: poetry install --no-interaction --all-extras --with dev | |
if: runner.os != 'Windows' | |
- name: Build with pyinstaller for ${{matrix.TARGET}} | |
run: ${{matrix.CMD_BUILD}} | |
- name: Load Release URL File from release job | |
uses: actions/download-artifact@v1 | |
with: | |
name: ${{env.RELEASE_UPLOAD_URL}} | |
- name: Get Release File Name & Upload URL | |
id: get_release_info | |
shell: bash | |
run: | | |
VALUE=`cat ${{env.RELEASE_UPLOAD_URL}}/${{env.RELEASE_UPLOAD_URL}}.txt` | |
echo "upload_url=$VALUE" >> $GITHUB_OUTPUT | |
- name: Upload Release Asset | |
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}} |