12 Commits

Author SHA1 Message Date
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
Fizban
fbbcff164c more ecs 2020-06-03 00:33:43 +10:00
Fizban
f59ea26c6d echos 2020-06-03 00:27:07 +10:00
Fizban
e345907744 add echos 2020-06-03 00:26:52 +10:00
Fizban
4fdf899fb4 Rem ls 2020-06-03 00:23:04 +10:00
Fizban
bc0cbb72c2 Rem slash 2020-06-03 00:22:44 +10:00
Fizban
99c9398146 addls 2020-06-03 00:19:43 +10:00
Fizban
5a6a0b3105 Add ls 2020-06-03 00:19:25 +10:00
Fizban
74860fa3f9 try mounted? 2020-06-03 00:15:22 +10:00
Fizban
f07c773adf Try set pwd 2020-06-03 00:07:18 +10:00
Fizban
decd8304a3 Try from image 2020-06-03 00:02:20 +10:00
4 changed files with 102 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
FROM ubuntu:16.04 FROM cdrx/pyinstaller-windows
COPY entrypoint.sh /entrypoint.sh COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh

View File

@@ -1,2 +1,54 @@
# pyinstaller-action # 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
```

View File

@@ -8,7 +8,7 @@ inputs:
path: path:
description: 'Directory containing source code & .spec file (optional requirements.txt).' description: 'Directory containing source code & .spec file (optional requirements.txt).'
required: True required: True
default: src/ default: src
outputs: outputs:
output: output:
description: 'The output of PyInstaller' description: 'The output of PyInstaller'

View File

@@ -1 +1,47 @@
docker run -v "$(pwd)/$1:/src/" cdrx/pyinstaller-windows #!/bin/bash
# Fail on errors.
set -e
# Make sure .bashrc is sourced
. /root/.bashrc
# 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=$1
WORKDIR=${SRCDIR:-/src}
#
# In case the user specified a custom URL for PYPI, then use
# that one, instead of the default one.
#
if [[ "$PYPI_URL" != "https://pypi.python.org/" ]] || \
[[ "$PYPI_INDEX_URL" != "https://pypi.python.org/simple" ]]; then
# the funky looking regexp just extracts the hostname, excluding port
# to be used as a trusted-host.
mkdir -p /wine/drive_c/users/root/pip
echo "[global]" > /wine/drive_c/users/root/pip/pip.ini
echo "index = $PYPI_URL" >> /wine/drive_c/users/root/pip/pip.ini
echo "index-url = $PYPI_INDEX_URL" >> /wine/drive_c/users/root/pip/pip.ini
echo "trusted-host = $(echo $PYPI_URL | perl -pe 's|^.*?://(.*?)(:.*?)?/.*$|$1|')" >> /wine/drive_c/users/root/pip/pip.ini
echo "Using custom pip.ini: "
cat /wine/drive_c/users/root/pip/pip.ini
fi
cd $WORKDIR
if [ -f requirements.txt ]; then
pip install -r requirements.txt
fi # [ -f requirements.txt ]
# if [[ "$@" == "" ]]; then
pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec
chown -R --reference=. ./dist/windows
# else
# sh -c "$@"
# fi # [[ "$@" == "" ]]