diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/release.yaml | 10 | ||||
-rw-r--r-- | .github/workflows/test-binary-build.yaml | 77 | ||||
-rw-r--r-- | .github/workflows/test.yaml | 14 |
3 files changed, 86 insertions, 15 deletions
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d0cc7df..27b05c7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -89,7 +89,7 @@ jobs: run: | python3 -m venv venv . venv/bin/activate - pip install -U pip + pip install pip==21.1 pip install poetry poetry install python -c "import sys; print(sys.version)" @@ -107,18 +107,12 @@ jobs: iredis -h iredis help GET - - name: Cache cargo registry - uses: actions/cache@v1 - with: - path: ~/.cargo/registry - key: ${{ runner.os }}-cargo-registry - - 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 - cargo install pyoxidizer --vers 0.6.0 + pip install pyoxidizer pyoxidizer build --release install cd ./build/x86*/release/install tar -zcf ../../../iredis.tar.gz lib/ iredis diff --git a/.github/workflows/test-binary-build.yaml b/.github/workflows/test-binary-build.yaml new file mode 100644 index 0000000..a71d576 --- /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-16.04 + + # 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.7 + 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-16.04-poetryenv-${{ hashFiles('poetry.lock') }} + - name: Install Dependencies + run: | + python3 -m venv venv + . venv/bin/activate + pip install pip==21.1 + 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 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1c0a360..ede6dd3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -12,7 +12,7 @@ jobs: strategy: matrix: os: [ubuntu-16.04] - python: ['3.6', '3.7', '3.8'] + python: ['3.6', '3.7', '3.8', '3.9'] redis: [5, 6] runs-on: ${{ matrix.os }} @@ -25,21 +25,21 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} architecture: 'x64' - name: Cache venv - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: venv # Look to see if there is a cache hit for the corresponding requirements file - key: ${{ matrix.os }}-poetryenv-${{ hashFiles('poetry.lock') }} + key: poetryenv-${{ matrix.os }}-${{ matrix.python }}-${{ hashFiles('poetry.lock') }} - name: Install Dependencies run: | python3 -m venv venv . venv/bin/activate - pip install -U pip + pip install -U pip==21.1 setuptools pip install poetry poetry install python -c "import sys; print(sys.version)" @@ -49,7 +49,7 @@ jobs: REDIS_VERSION: ${{ matrix.redis }} run: | . venv/bin/activate - pytest + pytest || cat cli_test.log lint: name: flake8 & black runs-on: ubuntu-16.04 @@ -61,7 +61,7 @@ jobs: python-version: 3.7 architecture: 'x64' - name: Cache venv - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: venv # Look to see if there is a cache hit for the corresponding requirements file |