Giter Club home page Giter Club logo

pyinstaller's Introduction

Check all available usable tags here
You can also use any major tags like @v1 for any @v1.*.*


๐Ÿ”ฐ PyInstaller

  • This action packages the python source code into executables using pyinstaller.
  • Use this action in your workflow to create & upload executables to GitHub (as artifacts).
  • Use inputs to configure this action.
  • Use outputs to get information from this action.



๐Ÿ”ฐ Features

๐Ÿ’  Multi-OS support

  • Create executable for different kinds of os like linux, windows, mac etc.
  • Specify OS in jobs.<job-id>.runs-on=<your-os-name> in your workflow file.
  • see examples for more info.

๐Ÿ’  .py and .spec support

  • You can use either .py or .spec file to create the executable.
  • Specify it in inputs.spec: <file.py/file.spec>.
  • When .py file is used, generated .spec file will also be uploaded as artifact.
  • Modify your .spec file according to your needs.

๐Ÿ’  Third party modules

  • Write your third party modules in a file (Ex: requirements.txt) , and
  • Use inputs.requirements: <path-to-your-requirement-file>.

๐Ÿ’  Pyinstaller options

  • Specify pyinstaller options in inputs.options: <comma-seperated-options-here>.
  • .py and .spec both supports different kind of options.
  • Check list of all supported options here.

๐Ÿ’  Python and Pyinstaller versions

  • You can specify any python version for the executable.
  • Specify specific python-version in inputs.python_ver: <python-version-here>.
  • Specify specific pyinstaller-version in inputs.pyinstaller_ver: <pyinstaller-version-here-with-proper-signs, like '==5.13.2'>.

๐Ÿ’  Executable uploads

  • You can control if generated executable needs to be uploaded as artifact.
  • You can choose a name of your liking.
  • You can also customise the level of compression for the archive.
  • Specify the artifact name in inputs.upload_exe_with_name: <name-here>.



๐Ÿ”ฐ Inputs & Outputs

  • Some inputs are required, while rest are optional.
  • Check detailed info about these inputs & outputs here.

๐Ÿ’  Available Inputs

Input Default
(- = empty string)
Description
spec (required) - Path of your .py or .spec file
requirements - Path of your requirements.txt file
options - Options to set for pyinstaller command
python_ver 3.10 Specific python version you want to use
python_arch x64 Specific python architecture you want to use
pyinstaller_ver - Specific pyinstaller version you want to use
(with proper signs, like ==5.13.2)
exe_path ./dist Path on runner-os, where executable will be stored
upload_exe_with_name - Upload exe_ artifact with this name. Else, it won't upload
clean_checkout true If true, perform a clean checkout; if false, skip cleaning. Cleaning will remove all existing local files not in the repository during checkout. If you use utilities like pyinstaller-versionfile, set this to false.
compression_level 6 Level of compression for archive.
Range: 0 and 9.
(0 = No compression, 9 = Max compression).

๐Ÿ’  Available Outputs

Output Description
executable_path Path on runner-os, where executable will be stored
is_uploaded true, if packaged executable has been uploaded as artifact

๐Ÿ’  Supported Pyinstaller options

For .py For .py For .spec
--uac-admin --name <NAME>, -n <NAME> --ascii, -a
--uac-uiaccess --icon <FILEICON>, -i <FILEICON> --upx-dir <UPX_DIR>
--noupx --key <KEY>
--onedir, -D --upx-dir <UPX_DIR>
--onefile, -F --upx-exclude <FILE>
--ascii, -a --add-data <SRC;DEST or SRC:DEST>
--console, --nowindowed, -c --add-binary <SRC;DEST or SRC:DEST>
--windowed, --noconsole, -w --collect-data <MODULENAME>
--collect-all <MODULENAME>



๐Ÿ”ฐ Examples

jobs:
  pyinstaller-build:
    runs-on: <windows-latest / ubuntu-latest / ..... etc>
    steps:
      - name: Create Executable
        uses: sayyid5416/pyinstaller@v1
        with:
          python_ver: '3.6'
          pyinstaller_ver: '==5.13.2'
          spec: 'src/build.spec'
          requirements: 'src/requirements.txt'
          upload_exe_with_name: 'My executable'
          options: --onefile, --name "My App", --windowed, 



๐Ÿ”ฐ Main Repository : sayyid5416/pyinstaller

pyinstaller's People

Contributors

sayyid5416 avatar aliencaocao avatar young-lord avatar nackophilz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.