15 Commits

Author SHA1 Message Date
Jack McKew
a8dee21ad0 Merge pull request #2 from biplobsd/main
Argument for specifying .spec file to build
2020-06-26 08:17:34 +10:00
Biplob SD
7071c8c601 specific file 2020-06-25 19:30:22 +06:00
Biplob SD
4e2ef9706a Update action.yml 2020-06-25 18:12:28 +06:00
Biplob SD
9cdd374622 default *.spec 2020-06-25 17:37:37 +06:00
Biplob SD
b22424d290 default *.spec 2020-06-25 17:35:29 +06:00
Biplob SD
99ed1fb8c9 Update entrypoint.sh 2020-06-25 00:43:06 +06:00
Biplob SD
b469d4d30a Update entrypoint.sh 2020-06-25 00:24:03 +06:00
Biplob SD
ac8fd363b0 Update entrypoint.sh 2020-06-25 00:03:26 +06:00
Biplob SD
681336b7ae upgrade builds tools 2020-06-24 23:52:49 +06:00
Biplob SD
f1f2d7035f SPEC_FILE 2020-06-24 23:11:48 +06:00
Biplob SD
ff7e885f69 spec path 2020-06-24 22:57:19 +06:00
Fizban
33e01256d3 Add FAQ and example repo 2020-06-15 21:10:01 +10:00
Fizban
318c4aa936 For clarity 2020-06-08 21:03:55 +10:00
Fizban
2790537b70 Main as default branch 2020-06-08 21:01:01 +10:00
Jack McKew
a9a33a332d add notes 2020-06-04 09:25:21 +10:00
3 changed files with 25 additions and 5 deletions

View File

@@ -5,6 +5,7 @@ Github Action for building executables with PyInstaller
To build your application, you need to specify where your source code is via the `path` argument, this defaults to `src`. To build your application, you need to specify where your source code is via the `path` argument, this defaults to `src`.
The source code directory should have your `.spec` file that PyInstaller generates. If you don't have one, you'll need to run PyInstaller once locally to generate it. The source code directory should have your `.spec` file that PyInstaller generates. If you don't have one, you'll need to run PyInstaller once locally to generate it.
Also if you have another program `.spec` file you can set specific pyinstaller `.spec` file by `spec: <YOUR_SPEC_FILE_NAME>`
If the `src` folder has a `requirements.txt` file, the packages will be installed into the environment before PyInstaller runs. If the `src` folder has a `requirements.txt` file, the packages will be installed into the environment before PyInstaller runs.
@@ -13,13 +14,19 @@ If you wish to specify a package mirror, this is possibly via the `pypi_url` and
- `pypi_url` = `https://pypi.python.org/` - `pypi_url` = `https://pypi.python.org/`
- `pypi_index_url` = `https://pypi.python.org/simple` - `pypi_index_url` = `https://pypi.python.org/simple`
> If you are using the default Python `gitignore` file, ensure to remove `.spec`.
> This action uses [Wine](https://www.winehq.org) to emulate windows inside Docker for packaging POSIX executables.
## Example usage ## Example usage
There's an example repository where you can see this action in action: <https://github.com/JackMcKew/pyinstaller-action-windows-example>. Where you can find the packaged executable at: <https://github.com/JackMcKew/pyinstaller-action-windows-example/actions/runs/135879475>.
Include this in your `.github/workflows/main.yaml`: Include this in your `.github/workflows/main.yaml`:
```yaml ```yaml
- name: PyInstaller Windows - name: PyInstaller Windows
uses: JackMcKew/pyinstaller-action-windows@master uses: JackMcKew/pyinstaller-action-windows@main
with: with:
path: src path: src
``` ```
@@ -50,7 +57,7 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Package Application - name: Package Application
uses: JackMcKew/pyinstaller-action-windows@master uses: JackMcKew/pyinstaller-action-windows@main
with: with:
path: src path: src
@@ -60,6 +67,10 @@ jobs:
path: src/dist/windows path: src/dist/windows
``` ```
## FAQ
If you get this error: `OSError: [WinError 123] Invalid name: '/tmp\\*'`, ensure your path is correctly configured, the default is `src`.
## Sources ## Sources
A big thank you to all the contributors over at <https://github.com/cdrx/docker-pyinstaller>, this action is just a modified version of their docker container, thank you! A big thank you to all the contributors over at <https://github.com/cdrx/docker-pyinstaller>, this action is just a modified version of their docker container, thank you!

View File

@@ -6,7 +6,7 @@ branding:
color: 'blue' color: 'blue'
inputs: inputs:
path: path:
description: 'Directory containing source code & .spec file (optional requirements.txt).' description: 'Directory containing source code (optional requirements.txt).'
required: True required: True
default: src default: src
pypi_url: pypi_url:
@@ -17,6 +17,10 @@ inputs:
description: 'Specify a custom URL for PYPI Index' description: 'Specify a custom URL for PYPI Index'
required: False required: False
default: https://pypi.python.org/simple default: https://pypi.python.org/simple
spec:
description: 'Specify a file path for .spec file'
required: False
default: ""
outputs: outputs:
output: output:
description: 'The output of PyInstaller' description: 'The output of PyInstaller'
@@ -28,3 +32,4 @@ runs:
- ${{ inputs.path }} - ${{ inputs.path }}
- ${{ inputs.pypi_url }} - ${{ inputs.pypi_url }}
- ${{ inputs.pypi_index_url }} - ${{ inputs.pypi_index_url }}
- ${{ inputs.spec }}

View File

@@ -17,6 +17,10 @@ PYPI_INDEX_URL=$3
WORKDIR=${SRCDIR:-/src} WORKDIR=${SRCDIR:-/src}
SPEC_FILE=${4:-*.spec}
python -m pip install --upgrade pip wheel setuptools
# #
# In case the user specified a custom URL for PYPI, then use # In case the user specified a custom URL for PYPI, then use
# that one, instead of the default one. # that one, instead of the default one.
@@ -44,7 +48,7 @@ fi # [ -f requirements.txt ]
# if [[ "$@" == "" ]]; then # if [[ "$@" == "" ]]; then
pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec pyinstaller --clean -y --dist ./dist/windows --workpath /tmp $SPEC_FILE
chown -R --reference=. ./dist/windows chown -R --reference=. ./dist/windows
# else # else
# sh -c "$@" # sh -c "$@"