pyinstaller-action-windows/README.md

77 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2020-06-03 08:06:39 +08:00
# PyInstaller-Action-Windows
2020-06-02 22:50:15 +08:00
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`.
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.
2020-06-25 21:30:22 +08:00
Also if you have another program `.spec` file you can set specific pyinstaller `.spec` file by `spec: <YOUR_SPEC_FILE_NAME>`
2020-06-02 22:50:15 +08:00
If the `src` folder has a `requirements.txt` file, the packages will be installed into the environment before PyInstaller runs.
2020-06-03 07:58:23 +08:00
If you wish to specify a package mirror, this is possibly via the `pypi_url` and/or the `pypi_index_url`, these defaults are:
- `pypi_url` = `https://pypi.python.org/`
- `pypi_index_url` = `https://pypi.python.org/simple`
2020-06-04 07:25:21 +08:00
> 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.
2020-06-02 22:50:15 +08:00
## Example usage
2020-06-15 19:10:01 +08:00
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>.
2020-06-02 22:50:15 +08:00
Include this in your `.github/workflows/main.yaml`:
```yaml
- name: PyInstaller Windows
2020-06-08 19:01:01 +08:00
uses: JackMcKew/pyinstaller-action-windows@main
2020-06-03 08:04:29 +08:00
with:
path: src
2020-06-02 22:50:15 +08:00
```
## Full Example
Here is an entire workflow for:
- Packaging an application with PyInstaller
- Uploading the packaged executable as an artifact
``` yaml
name: Package Application with Pyinstaller
on:
push:
2020-06-08 19:03:55 +08:00
branches: [ master ]
2020-06-02 22:50:15 +08:00
pull_request:
2020-06-08 19:03:55 +08:00
branches: [ master ]
2020-06-02 22:50:15 +08:00
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Package Application
2020-06-08 19:01:01 +08:00
uses: JackMcKew/pyinstaller-action-windows@main
2020-06-02 22:50:15 +08:00
with:
path: src
- uses: actions/upload-artifact@v2
with:
name: name-of-artifact
path: src/dist/windows
```
2020-06-03 07:58:23 +08:00
2020-06-15 19:10:01 +08:00
## FAQ
If you get this error: `OSError: [WinError 123] Invalid name: '/tmp\\*'`, ensure your path is correctly configured, the default is `src`.
2020-06-03 07:58:23 +08:00
## 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!