name: Python package on: [push, pull_request] jobs: build: name: python ${{ matrix.python-version }}, bitcoind ${{ matrix.bitcoind-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-13, ubuntu-latest] python-version: ["3.8", "3.12"] bitcoind-version: ["25.1", "29.0"] steps: - uses: actions/checkout@v3 - name: Run ShellCheck uses: ludeeus/action-shellcheck@master with: version: v0.9.0 - 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: | bash -x ./install.sh --develop --with-qt ./jmvenv/bin/python -m pip install --upgrade pip - name: Lint with flake8 run: source ./jmvenv/bin/activate && ./test/lint/lint-python.sh - name: Cache bitcoind uses: actions/cache@v3 env: cache-name: bitcoind BITCOIND_VERSION: ${{ matrix.bitcoind-version }} with: path: ~/bitcoin/*/bin/bitcoin* key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.BITCOIND_VERSION }}-${{ hashFiles('test/testrunner/install_bitcoind.sh') }} - name: Install bitcoind env: BITCOIND_VERSION: ${{ matrix.bitcoind-version }} run: bash -x ./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 && bash -x ./test/run_tests.sh