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