Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8dee21ad0 | ||
|
|
7071c8c601 | ||
|
|
4e2ef9706a | ||
|
|
9cdd374622 | ||
|
|
b22424d290 | ||
|
|
99ed1fb8c9 | ||
|
|
b469d4d30a | ||
|
|
ac8fd363b0 | ||
|
|
681336b7ae | ||
|
|
f1f2d7035f | ||
|
|
ff7e885f69 | ||
|
|
33e01256d3 | ||
|
|
318c4aa936 | ||
|
|
2790537b70 | ||
|
|
a9a33a332d |
15
README.md
15
README.md
@@ -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!
|
||||||
|
|||||||
@@ -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'
|
||||||
@@ -27,4 +31,5 @@ runs:
|
|||||||
args:
|
args:
|
||||||
- ${{ inputs.path }}
|
- ${{ inputs.path }}
|
||||||
- ${{ inputs.pypi_url }}
|
- ${{ inputs.pypi_url }}
|
||||||
- ${{ inputs.pypi_index_url }}
|
- ${{ inputs.pypi_index_url }}
|
||||||
|
- ${{ inputs.spec }}
|
||||||
|
|||||||
@@ -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 "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user