Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb09f72a9c | ||
|
|
e5d7a99003 | ||
|
|
fbbcff164c | ||
|
|
f59ea26c6d | ||
|
|
e345907744 | ||
|
|
4fdf899fb4 | ||
|
|
bc0cbb72c2 | ||
|
|
99c9398146 | ||
|
|
5a6a0b3105 | ||
|
|
74860fa3f9 |
54
README.md
54
README.md
@@ -1,2 +1,54 @@
|
||||
# pyinstaller-action
|
||||
Github Action for building executables with Pyinstaller
|
||||
|
||||
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.
|
||||
|
||||
If the `src` folder has a `requirements.txt` file, the packages will be installed into the environment before PyInstaller runs.
|
||||
|
||||
## Example usage
|
||||
|
||||
Include this in your `.github/workflows/main.yaml`:
|
||||
|
||||
```yaml
|
||||
- name: PyInstaller Windows
|
||||
uses: JackMcKew/pyinstaller-action-windows@master
|
||||
```
|
||||
|
||||
## 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:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Package Application
|
||||
uses: JackMcKew/pyinstaller-action-windows@master
|
||||
with:
|
||||
path: src
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: name-of-artifact
|
||||
path: src/dist/windows
|
||||
```
|
||||
|
||||
@@ -8,7 +8,7 @@ inputs:
|
||||
path:
|
||||
description: 'Directory containing source code & .spec file (optional requirements.txt).'
|
||||
required: True
|
||||
default: src/
|
||||
default: src
|
||||
outputs:
|
||||
output:
|
||||
description: 'The output of PyInstaller'
|
||||
|
||||
@@ -9,7 +9,8 @@ set -e
|
||||
# Allow the workdir to be set using an env var.
|
||||
# Useful for CI pipiles which use docker for their build steps
|
||||
# and don't allow that much flexibility to mount volumes
|
||||
SRCDIR=$(pwd)/$1
|
||||
SRCDIR=$1
|
||||
|
||||
WORKDIR=${SRCDIR:-/src}
|
||||
|
||||
#
|
||||
@@ -36,11 +37,11 @@ if [ -f requirements.txt ]; then
|
||||
pip install -r requirements.txt
|
||||
fi # [ -f requirements.txt ]
|
||||
|
||||
echo "$@"
|
||||
|
||||
if [[ "$@" == "" ]]; then
|
||||
|
||||
# if [[ "$@" == "" ]]; then
|
||||
pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec
|
||||
chown -R --reference=. ./dist/windows
|
||||
else
|
||||
sh -c "$@"
|
||||
fi # [[ "$@" == "" ]]
|
||||
# else
|
||||
# sh -c "$@"
|
||||
# fi # [[ "$@" == "" ]]
|
||||
|
||||
Reference in New Issue
Block a user