diff options
Diffstat (limited to '.github/workflows/test-binary-build.yaml')
-rw-r--r-- | .github/workflows/test-binary-build.yaml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/.github/workflows/test-binary-build.yaml b/.github/workflows/test-binary-build.yaml new file mode 100644 index 0000000..1fbcd80 --- /dev/null +++ b/.github/workflows/test-binary-build.yaml @@ -0,0 +1,77 @@ +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 |