6 Commits

Author SHA1 Message Date
Fizban
0ef75fa4df Update README 2020-06-03 10:06:39 +10:00
Fizban
552fdbedd1 Add to action 2020-06-03 10:04:29 +10:00
Fizban
c2734ccf37 Remove spaces 2020-06-03 10:01:35 +10:00
Fizban
a118eb0da4 Add pypi mirror 2020-06-03 09:58:23 +10:00
Fizban
eb09f72a9c Update readme for 0.1.0 release 2020-06-03 00:50:15 +10:00
Fizban
e5d7a99003 Remove final if 2020-06-03 00:39:36 +10:00
3 changed files with 89 additions and 14 deletions

View File

@@ -1,2 +1,65 @@
# pyinstaller-action
Github Action for building executables with Pyinstaller
# PyInstaller-Action-Windows
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.
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`
## Example usage
Include this in your `.github/workflows/main.yaml`:
```yaml
- name: PyInstaller Windows
uses: JackMcKew/pyinstaller-action-windows@master
with:
path: src
```
## 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
```
## 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!

View File

@@ -9,6 +9,14 @@ inputs:
description: 'Directory containing source code & .spec file (optional requirements.txt).'
required: True
default: src
pypi_url:
description: 'Specify a custom URL for PYPI'
required: False
default: https://pypi.python.org/
pypi_index_url:
description: 'Specify a custom URL for PYPI Index'
required: False
default: https://pypi.python.org/simple
outputs:
output:
description: 'The output of PyInstaller'
@@ -18,3 +26,5 @@ runs:
image: 'Dockerfile'
args:
- ${{ inputs.path }}
- ${{ inputs.pypi_url }}
- ${{ inputs.pypi_index_url }}

View File

@@ -11,6 +11,10 @@ set -e
# and don't allow that much flexibility to mount volumes
SRCDIR=$1
PYPI_URL=$2
PYPI_INDEX_URL=$3
WORKDIR=${SRCDIR:-/src}
#
@@ -30,20 +34,18 @@ if [[ "$PYPI_URL" != "https://pypi.python.org/" ]] || \
echo "Using custom pip.ini: "
cat /wine/drive_c/users/root/pip/pip.ini
fi
echo "before cd"
ls
cd $WORKDIR
echo "after cd"
ls
if [ -f requirements.txt ]; then
pip install -r requirements.txt
fi # [ -f requirements.txt ]
# echo "$@"
if [[ "$@" == "" ]]; then
pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec
chown -R --reference=. ./dist/windows
else
sh -c "$@"
fi # [[ "$@" == "" ]]
# if [[ "$@" == "" ]]; then
pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec
chown -R --reference=. ./dist/windows
# else
# sh -c "$@"
# fi # [[ "$@" == "" ]]