From 397dec3f89f3de5885d19f9cbc582a9f85ef6e29 Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Sun, 27 Jun 2021 17:54:57 +0300 Subject: [PATCH 1/6] Setup a github workflow for python testing --- .github/workflows/test.yml | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..7f30eea6 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,56 @@ +name: Quick Test + +on: push + +jobs: + default: + + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-18.04, macos-latest] + python-version: [2.7, 3.8] + include: + - os: ubuntu-18.04 + python-version: 3.9 + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Set environment variables + run: | + if [[ ${{ runner.os }} == macOS ]]; then + echo "LDFLAGS=-L/usr/local/opt/openssl@1.1/lib" >> $GITHUB_ENV + echo "CPPFLAGS=-I/usr/local/opt/openssl@1.1/include" >> $GITHUB_ENV + fi + - name: Install apt dependencies + if: ${{ runner.os == 'Linux' }} + run: | + sudo apt-get update -q + install="sudo apt-get install + -yq --no-install-suggests --no-install-recommends" + $install build-essential libcap-dev libssl-dev python-all-dev tor + if [[ ! ${{ matrix.python-version }} == 2.7 ]]; then + $install qtbase5-dev qt5-default + fi + - name: Install brew dependencies + if: ${{ runner.os == 'macOS' }} + run: | + brew install tor + brew services start tor + - name: Install python dependencies + run: | + python -m pip install --upgrade pip + pip install wheel + pip install -r requirements.txt + python setup.py install + - name: Test + run: | + export PYTHONWARNINGS=all + python checkdeps.py + python src/bitmessagemain.py -t + python -bm tests From 9dd87f2c4e7ffc7d80825d63f5c51c552e33afee Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Sun, 4 Jul 2021 19:53:40 +0300 Subject: [PATCH 2/6] Install and start tor on macos only for py2.7 - for core tests --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7f30eea6..e890cb76 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,7 +38,7 @@ jobs: $install qtbase5-dev qt5-default fi - name: Install brew dependencies - if: ${{ runner.os == 'macOS' }} + if: ${{ runner.os == 'macOS' && matrix.python-version == '2.7' }} run: | brew install tor brew services start tor From 0b9bf94cc29b421e87abf9a95a95c0c46d4c7b2e Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Tue, 3 Aug 2021 16:15:50 +0300 Subject: [PATCH 3/6] Add ubuntu-latest --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e890cb76..93266f01 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-18.04, macos-latest] + os: [ubuntu-18.04, ubuntu-latest, macos-latest] python-version: [2.7, 3.8] include: - os: ubuntu-18.04 From 89801d0be2f21e70ff57944de451736b926a22b5 Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Tue, 3 Aug 2021 16:20:04 +0300 Subject: [PATCH 4/6] Add linting, including bandit, flake8 should error in near future --- .github/workflows/test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 93266f01..308bcc07 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,6 +48,17 @@ jobs: pip install wheel pip install -r requirements.txt python setup.py install + - name: Install additional python dependencies + if: ${{ matrix.python-version == '3.8' }} + run: | + pip install bandit flake8 + - name: Lint + if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8' }} + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 pybitmessage --count --select=E9,F63,F7,F82 \ + --show-source --statistics --exit-zero + bandit -r --exit-zero -x tests,bitmessagecurses -s B608 pybitmessage - name: Test run: | export PYTHONWARNINGS=all From 017d835bd7ea0e9ecc41215a582c8d8052f4ea1b Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Tue, 3 Aug 2021 16:39:58 +0300 Subject: [PATCH 5/6] Exclude from flake8: bitmessagecli,bitmessagecurses - unmaintained, umsgpack - external, network - second order. --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index a4e0547c..77c8bae6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,6 +7,7 @@ max-line-length = 119 [flake8] +exclude = bitmessagecurses,network,umsgpack,bitmessagecli.py max-line-length = 119 ignore = E722,F841,W503 # E722: pylint is preferred for bare-except From 4da11e753ea9d71eabf413f4f310f56bc9717484 Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Mon, 15 Nov 2021 14:55:16 +0200 Subject: [PATCH 6/6] Run tests in portable mode in a separate step --- .github/workflows/test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 308bcc07..a48537f5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,6 +47,12 @@ jobs: python -m pip install --upgrade pip pip install wheel pip install -r requirements.txt + - name: Portable run + if: ${{ matrix.os == 'ubuntu-18.04' && matrix.python-version == '2.7' }} + run: | + python -m pybitmessage.bitmessagemain -t + - name: Install + run: | python setup.py install - name: Install additional python dependencies if: ${{ matrix.python-version == '3.8' }}