name: Python package on: [push, pull_request] jobs: build: name: python ${{ matrix.python-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} # - name: Cache venv # id: cache-venv # uses: actions/cache@v3 # env: # cache-name: venv # with: # path: jmvenv # key: ${{ runner.os }}-${{ matrix.python-version }}-${{ env.cache-name }}-${{ hashFiles('requirements/*.txt', 'install.sh', '*/setup.py') }} - name: Setup joinmarket + virtualenv # if: steps.cache-venv.outputs.cache-hit != 'true' run: | sed -i.bak 's/-e //g' requirements/base.txt sed -i.bak 's/-e //g' requirements/gui.txt ./install.sh --develop --with-qt ./jmvenv/bin/pip install -r requirements/testing.txt - name: Lint with flake8 run: ./jmvenv/bin/flake8 -v jmclient jmbase jmbitcoin jmdaemon scripts - name: Cache bitcoind uses: actions/cache@v3 env: cache-name: bitcoind with: path: ~/bitcoin/*/bin/bitcoin* key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('test/testrunner/install_bitcoind.sh') }} - name: Install bitcoind run: ./test/testrunner/install_bitcoind.sh - name: Cache miniircd uses: actions/cache@v3 env: cache-name: miniircd with: path: miniircd/miniircd key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('test/run_tests.sh') }} - name: Run tests run: source ./jmvenv/bin/activate && ./test/run_tests.sh