151 lines
4.9 KiB
YAML
151 lines
4.9 KiB
YAML
name: release-master
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
on:
|
|
# release:
|
|
# types: [published]
|
|
# branches: [master]
|
|
workflow_dispatch: # or workflow_call
|
|
inputs:
|
|
asset_mime:
|
|
description: "MIME Type"
|
|
required: false
|
|
default: "application/zip"
|
|
out_name_file:
|
|
description: "App file name"
|
|
required: false
|
|
default: "TIDAL-Downloader-NG"
|
|
push:
|
|
tags:
|
|
- "v*.*.*"
|
|
|
|
env:
|
|
RELEASE_UPLOAD_URL: "release_upload_url"
|
|
|
|
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
|
|
|
|
build-gui-and-upload-assets:
|
|
needs: publish
|
|
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"
|
|
CMD_BUILD: >
|
|
brew install create-dmg &&
|
|
source .venv/bin/activate &&
|
|
poetry run make gui-macos &&
|
|
cd dist &&
|
|
pwd &&
|
|
echo zip -r ${{inputs.out_name_file}}${{inputs.asset_extension}} ${{inputs.out_name_file}}.dmg -x "*.DS_Store"
|
|
zip -r ${{inputs.out_name_file}}${{inputs.asset_extension}} ${{inputs.out_name_file}}.dmg -x "*.DS_Store"
|
|
# - os: "windows-2019"
|
|
# TARGET: "windows-2019"
|
|
# CMD_BUILD: pyinstaller -F -w -n clipster -i resources/clipster.ico cli.py
|
|
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
|
|
run: poetry install --no-interaction --all-extras --with dev
|
|
- 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 ::set-output name=upload_url::$value
|
|
- 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/${{inputs.out_name_file}}${{inputs.asset_extension}}
|
|
asset_name: ${{inputs.out_name_file}}${{inputs.asset_extension}}
|
|
asset_content_type: ${{env.ASSET_MIME}}
|