diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 69be0bb..c971627 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,18 +13,18 @@ on: - 'false' push: tags: - - "*" # Il workflow si eseguirà quando viene fatto un push con qualsiasi tag + - "*" jobs: publish: - if: github.event.inputs.publish_pypi == 'true' # Solo se publish_pypi è true + if: github.event.inputs.publish_pypi == 'true' runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: - fetch-depth: 0 # Recupera tutti i tag e la cronologia dei commit + fetch-depth: 0 - name: Get the latest tag id: get_latest_tag @@ -37,40 +37,36 @@ jobs: - name: Install packaging dependencies run: | - echo "Installing packaging dependencies" python -m pip install --upgrade pip python -m pip install setuptools wheel twine - - name: Build package - run: | - echo "Building the package" - python setup.py sdist bdist_wheel + run: python setup.py sdist bdist_wheel - name: Upload to PyPI env: - TWINE_USERNAME: __token__ # Usa '__token__' per l'autenticazione con PyPI + TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} - run: | - echo "Uploading package to PyPI" - twine upload dist/* + run: twine upload dist/* build: - if: github.event.inputs.publish_pypi == 'false' # Solo se publish_pypi è false + if: github.event.inputs.publish_pypi == 'false' strategy: matrix: - os: [windows-latest, ubuntu-latest] # Compila per Windows e Linux + os: [windows-latest, ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v4 with: - fetch-depth: 0 # Recupera tutti i tag e la cronologia dei commit + fetch-depth: 0 - name: Get the latest tag id: get_latest_tag - run: echo "latest_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - + shell: pwsh + run: | + $latestTag = git describe --tags --abbrev=0 + echo "latest_tag=$latestTag" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: Set up Python uses: actions/setup-python@v4 with: @@ -78,33 +74,39 @@ jobs: - name: Install dependencies run: | - echo "Installing dependencies" python -m pip install --upgrade pip python -m pip install -r requirements.txt python -m pip install pyinstaller - python -m pip install fake-useragent==1.1.3 # Aggiunta dipendenza fake-useragent - + python -m pip install fake-useragent==1.1.3 - name: Build executable with PyInstaller (Windows) if: matrix.os == 'windows-latest' - shell: cmd + shell: pwsh run: | - echo "Building Windows executable with PyInstaller" - pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=fake_useragent --hidden-import=qbittorrentapi --hidden-import=qbittorrent --hidden-import=googlesearch --hidden-import=bs4 --hidden-import=httpx --hidden-import=rich --hidden-import=tqdm --hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode --hidden-import=jsbeautifier --hidden-import=pathvalidate --hidden-import=Cryptodome.Cipher --hidden-import=Cryptodome.Cipher.AES --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding --hidden-import=Cryptodome.Random --hidden-import=Pillow --hidden-import=pyTelegramBotAPI --additional-hooks-dir=pyinstaller/hooks --add-data "StreamingCommunity;StreamingCommunity" --name=StreamingCommunity --icon=".github/media/logo.ico" test_run.py - + pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=fake_useragent ` + --hidden-import=qbittorrentapi --hidden-import=qbittorrent --hidden-import=googlesearch ` + --hidden-import=bs4 --hidden-import=httpx --hidden-import=rich --hidden-import=tqdm ` + --hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode ` + --hidden-import=jsbeautifier --hidden-import=pathvalidate ` + --hidden-import=Cryptodome.Cipher --hidden-import=Cryptodome.Cipher.AES ` + --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding ` + --hidden-import=Cryptodome.Random --hidden-import=Pillow ` + --hidden-import=pyTelegramBotAPI --additional-hooks-dir=pyinstaller/hooks ` + --add-data "StreamingCommunity;StreamingCommunity" ` + --name=StreamingCommunity --icon=".github/media/logo.ico" test_run.py - name: Build executable with PyInstaller (Linux) if: matrix.os == 'ubuntu-latest' - shell: bash run: | - echo "Building Linux executable with PyInstaller" - pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=fake_useragent --hidden-import=qbittorrentapi \ - --hidden-import=qbittorrent --hidden-import=googlesearch --hidden-import=bs4 --hidden-import=httpx \ - --hidden-import=rich --hidden-import=tqdm --hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode \ - --hidden-import=jsbeautifier --hidden-import=pathvalidate --hidden-import=Cryptodome.Cipher \ - --hidden-import=Cryptodome.Cipher.AES --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \ - --hidden-import=Cryptodome.Random --hidden-import=Pillow --hidden-import=pyTelegramBotAPI \ - --additional-hooks-dir=pyinstaller/hooks --add-data "StreamingCommunity:StreamingCommunity" \ - --name=StreamingCommunity test_run.py - + pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=fake_useragent \ + --hidden-import=qbittorrentapi --hidden-import=qbittorrent --hidden-import=googlesearch \ + --hidden-import=bs4 --hidden-import=httpx --hidden-import=rich --hidden-import=tqdm \ + --hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode \ + --hidden-import=jsbeautifier --hidden-import=pathvalidate \ + --hidden-import=Cryptodome.Cipher --hidden-import=Cryptodome.Cipher.AES \ + --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \ + --hidden-import=Cryptodome.Random --hidden-import=Pillow \ + --hidden-import=pyTelegramBotAPI --additional-hooks-dir=pyinstaller/hooks \ + --add-data "StreamingCommunity:StreamingCommunity" \ + --name=StreamingCommunity test_run.py - name: Upload executable (Windows) if: matrix.os == 'windows-latest' uses: actions/upload-artifact@v4 @@ -122,9 +124,9 @@ jobs: - name: Create or update release uses: softprops/action-gh-release@v1 with: - tag_name: ${{ env.latest_tag }} # Usa l'ultimo tag come nome del release + tag_name: ${{ env.latest_tag }} files: | dist/StreamingCommunity.exe dist/StreamingCommunity env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}