77 lines
2.1 KiB
YAML
77 lines
2.1 KiB
YAML
name: Test binary build.
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
test-release-binary:
|
|
name: Test Build Executable Binary. You can download from Artifact after building.
|
|
runs-on: ubuntu-latest
|
|
|
|
# FIXME
|
|
# help test shouldn't depends on this to run
|
|
services:
|
|
redis:
|
|
image: redis
|
|
ports:
|
|
- 6379:6379
|
|
options: --entrypoint redis-server
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
architecture: 'x64'
|
|
- name: Cache venv
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: venv
|
|
# Look to see if there is a cache hit for the corresponding requirements file
|
|
key: ubuntu-latest-poetryenv-${{ hashFiles('poetry.lock') }}
|
|
- name: Install Dependencies
|
|
run: |
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install pip
|
|
pip install poetry
|
|
poetry install
|
|
python -c "import sys; print(sys.version)"
|
|
pip list
|
|
- name: Poetry Build
|
|
run: |
|
|
. venv/bin/activate
|
|
poetry build
|
|
- name: Test Build
|
|
run: |
|
|
python3 -m venv fresh_env
|
|
. fresh_env/bin/activate
|
|
pip install dist/*.whl
|
|
|
|
iredis -h
|
|
iredis help GET
|
|
|
|
- name: Executable Build
|
|
run: |
|
|
# pyoxidizer doesn't know the wheel path, and it doesn't support passing env vars
|
|
export WHEEL_PATH=`ls ./dist/iredis*.whl`
|
|
envsubst '$WHEEL_PATH' < pyoxidizer.template.bzl > pyoxidizer.bzl
|
|
pip install pyoxidizer
|
|
pyoxidizer build --release install
|
|
cd ./build/x86*/release/install
|
|
tar -zcf ../../../iredis.tar.gz lib/ iredis
|
|
cd -
|
|
|
|
- name: Test Executable
|
|
run: |
|
|
./build/x86*/release/install/iredis -h
|
|
./build/x86*/release/install/iredis help GET
|
|
|
|
- name: Upload Release Asset to Github Artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: iredis-${{github.sha}}.tar.gz
|
|
path: ./build/iredis.tar.gz
|