From 62e599d713b49baf792fd292c0dcde9946977f83 Mon Sep 17 00:00:00 2001 From: Adamantios Date: Tue, 26 Nov 2024 13:54:47 +0200 Subject: [PATCH] exp2 --- .github/workflows/workflow.yml | 508 +------------------------- tests/test_cli/test_check_packages.py | 2 +- tox.ini | 2 +- 3 files changed, 3 insertions(+), 509 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e80ad31cfd..43d0cfbe66 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -11,429 +11,14 @@ env: IS_CI_WORKFLOW: True jobs: - common_checks_1: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install pipenv - - name: Pipenv install requirements and check it can be locked - run: | - pipenv --clear - time pipenv install --verbose --dev --skip-lock - time pipenv run pip install -e .[all] - time pipenv run pip install --no-deps file:plugins/aea-ledger-ethereum - time pipenv run pip install --no-deps file:plugins/aea-ledger-ethereum-flashbots - time pipenv run pip install --no-deps file:plugins/aea-ledger-cosmos - time pipenv run pip install --no-deps file:plugins/aea-ledger-fetchai - time pipenv run pip install --no-deps file:plugins/aea-ledger-solana - time pipenv lock - - name: Check plugin consistency - run: | - # check diff between plugins' LICENSE and main LICENSE - diff LICENSE plugins/aea-ledger-ethereum/LICENSE - diff LICENSE plugins/aea-ledger-cosmos/LICENSE - diff LICENSE plugins/aea-ledger-fetchai/LICENSE - common_checks_2: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - - name: Security Check - run: tox -e bandit - - name: Safety Check - run: tox -e safety - - name: Code style check - run: | - tox -e black-check - tox -e isort-check - tox -e flake8 - - name: Docstring check - run: tox -e darglint - - name: Unused code check - run: tox -e vulture - - name: Static type check - run: tox -e mypy - - name: Golang code style check (aealite) - uses: golangci/golangci-lint-action@v3.1.0 - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - with: - version: v1.45.2 - args: --version - working-directory: libs/go/aealite - - common_checks_3: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - - name: Pylint check - run: | - tox -e pylint - common_checks_4: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - pip install --user --upgrade setuptools - # install Protobuf compiler - wget https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-linux-x86_64.zip - unzip protoc-24.3-linux-x86_64.zip -d protoc - sudo mv protoc/bin/protoc /usr/local/bin/protoc - # install IPFS - sudo apt-get install -y wget - wget -O ./go-ipfs.tar.gz https://dist.ipfs.tech/go-ipfs/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz - tar xvfz go-ipfs.tar.gz - sudo mv go-ipfs/ipfs /usr/local/bin/ipfs - ipfs init - make protolint_install - - name: License Check - run: tox -e liccheck - - name: AEA Package Hashes Check - run: tox -e hash-check - - name: Check package versions in documentation - run: tox -e package-version-checks - - name: Check package dependencies - run: tox -e package-dependencies-checks - - name: Check dependencies - run: tox -e check-dependencies - - name: Check generate protocols - run: tox -e check-generate-all-protocols - - name: Generate Documentation - run: tox -e docs - - copyright_check: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - pip install --user --upgrade setuptools - - name: Copyright Check - run: tox -e check-copyright - - common_checks_5: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - if: github.base_ref == 'main' - steps: - - uses: actions/checkout@master - with: - fetch-depth: 0 - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-node@v1 - with: - node-version: 12.x - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - - name: Install markdown-spellcheck - run: sudo npm install -g markdown-spellcheck - - name: Check API Docs updated - run: tox -e check-api-docs - - name: Check spelling - run: tox -e spell-check - - docs_link_check: - continue-on-error: True - runs-on: ubuntu-latest - timeout-minutes: 5 - if: github.base_ref == 'main' - steps: - - uses: actions/checkout@master - with: - fetch-depth: 0 - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-node@v1 - with: - node-version: 12.x - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - - name: Check Docs links and IPFS hashes - run: tox -e check-doc-links-hashes - - scan: - name: gitleaks - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - run: | - wget https://github.com/zricethezav/gitleaks/releases/download/v8.10.1/gitleaks_8.10.1_linux_x64.tar.gz && \ - tar -xzf gitleaks_8.10.1_linux_x64.tar.gz && \ - sudo install gitleaks /usr/bin && \ - gitleaks detect --report-format json --report-path leak_report - dependencies_checks: - continue-on-error: False - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python_version: ["3.10",] - timeout-minutes: 10 - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python_version }} - - name: Install tox - run: | - pip install tomte[tox]==0.2.13 - - name: Check Pipfile and tox.ini consistency - run: | - python ./scripts/check_pipfile_and_toxini.py - - name: Install current aea - run: | - pip install -e .[all] - - name: Check aea dependencies and imports - run: | - tox -e dependencies-check - plugins_install_check: - continue-on-error: False - runs-on: ${{ matrix.sys.os }} - env: - PYTHONUTF8: 1 - strategy: - matrix: - sys: - - { os: windows-latest, shell: "msys2 {0}" } - - { os: ubuntu-latest, shell: bash } -# - { os: macos-latest, shell: bash } - python_version: ["3.10",] - timeout-minutes: 15 - steps: - - uses: actions/checkout@master - - if: matrix.sys.os == 'windows-latest' - uses: msys2/setup-msys2@v2 - - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python_version }} - - name: Install tox - run: | - pip install tomte[tox]==0.2.13 - - name: Check plugin aea-ledger-cosmos - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-cosmos && aea generate-key cosmos && echo aea-ledger-cosmos checked!" - - name: Check plugin aea-ledger-ethereum - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-ethereum && aea generate-key ethereum && echo aea-ledger-ethereum checked!" - - name: Check plugin aea-ledger-ethereum-hwi - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-ethereum && pip install ./plugins/aea-ledger-ethereum-hwi && echo aea-ledger-hwi checked!" - - name: Check plugin aea-ledger-fetchai - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-cosmos && pip install ./plugins/aea-ledger-fetchai && aea generate-key fetchai && echo aea-ledger-fetchai checked!" - - name: Check plugin aea-cli-ipfs - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-cli-ipfs && aea ipfs --help && echo aea-cli-ipfs checked!" - - name: Check plugin aea-ledger-solana - run: | - tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-solana && aea generate-key solana && echo aea-ledger-solana checked!" - protolint: - continue-on-error: False - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - name: Install protolint (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - make protolint_install - - name: Protolint check - run: | - make protolint - integration_checks: - continue-on-error: True - needs: - - common_checks_1 - - common_checks_2 - - common_checks_3 - - common_checks_4 - - dependencies_checks - - plugins_install_check - runs-on: ubuntu-latest - timeout-minutes: 50 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - # install Protobuf compiler - wget https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-linux-x86_64.zip - unzip protoc-24.3-linux-x86_64.zip -d protoc - sudo mv protoc/bin/protoc /usr/local/bin/protoc - - # pull pre-built images - docker pull valory/open-acn-node:latest - - name: Framework integration tests - run: tox -e py3.10 -- -m 'integration and not unstable and not ledger and not profiling' - - name: Packages integration tests - run: tox -e packages-py3.10 -- -m 'integration and not unstable and not ledger and not profiling' - - profiling_checks: - continue-on-error: True - needs: - - common_checks_1 - - common_checks_2 - - common_checks_3 - - common_checks_4 - - dependencies_checks - - plugins_install_check - runs-on: ubuntu-latest - timeout-minutes: 50 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - # install Protobuf compiler - wget https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-linux-x86_64.zip - unzip protoc-24.3-linux-x86_64.zip -d protoc - sudo mv protoc/bin/protoc /usr/local/bin/protoc - - name: Framework integration tests - run: tox -e py3.10 -- -m 'profiling' - - integration_checks_ledger: - continue-on-error: True - needs: - - common_checks_1 - - common_checks_2 - - common_checks_3 - - common_checks_4 - - dependencies_checks - - plugins_install_check - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - - name: Framework integration tests - run: tox -e py3.10 -- -m 'integration and not unstable and ledger and not profiling' - - name: Packages integration tests - run: tox -e packages-py3.10 -- -m 'integration and not unstable and ledger and not profiling' - platform_checks: continue-on-error: True - needs: - - common_checks_1 - - common_checks_2 - - common_checks_3 - - common_checks_4 - - dependencies_checks - - plugins_install_check env: PYTHONUTF8: 1 # mostly for windows to work properly with utf8 files runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [macos-latest] python_version: ['3.8', '3.9', '3.10', '3.11'] timeout-minutes: 120 steps: @@ -444,31 +29,6 @@ jobs: - uses: actions/setup-go@v3 with: go-version: "1.17.7" - - if: matrix.os == 'ubuntu-latest' - name: Install dependencies (ubuntu-latest) - run: | - sudo apt-get update --fix-missing - sudo apt-get autoremove - sudo apt-get autoclean - pip install tomte[tox]==0.2.13 - # install Protobuf compiler - wget https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-linux-x86_64.zip - unzip protoc-24.3-linux-x86_64.zip -d protoc - sudo mv protoc/bin/protoc /usr/local/bin/protoc - make protolint_install - # install ipfs - wget https://dist.ipfs.tech/go-ipfs/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz - tar -xvzf go-ipfs_v0.6.0_linux-amd64.tar.gz - cd go-ipfs - sudo ./install.sh - cd .. - rm -rf go-ipfs - ipfs init - mkdir ~/.config/solana - echo "[6,206,143,203,220,22,227,247,237,23,114,181,56,70,53,98,224,64,192,221,134,115,153,146,252,81,8,41,237,224,225,176,195,11,129,62,207,146,39,47,172,98,101,87,102,166,105,202,33,169,134,76,27,149,148,68,4,15,215,47,196,227,216,48]" > ~/.config/solana/id.json - # sudo apt-get install -y protobuf-compiler - # use sudo rm /var/lib/apt/lists/lock above in line above update if dependency install failures persist - # use sudo apt-get dist-upgrade above in line below update if dependency install failures persist - if: matrix.os == 'macos-latest' name: Install dependencies (macos-latest) run: | @@ -491,32 +51,6 @@ jobs: ipfs init mkdir ~/.config/solana echo "[6,206,143,203,220,22,227,247,237,23,114,181,56,70,53,98,224,64,192,221,134,115,153,146,252,81,8,41,237,224,225,176,195,11,129,62,207,146,39,47,172,98,101,87,102,166,105,202,33,169,134,76,27,149,148,68,4,15,215,47,196,227,216,48]" > ~/.config/solana/id.json - - if: matrix.os == 'windows-latest' - name: Install dependencies (windows-latest) - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - run: | - python -m pip install -U pip - echo "::add-path::C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64" - choco install protoc --version 24.3 - choco install mingw -y - choco install make -y - # to check make was installed - make --version - pip install tomte[tox]==0.2.13 - # wget https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-win64.zip - # unzip protoc-24.3-win64.zip -d protoc - # sudo mv protoc/bin/protoc /usr/local/bin/protoc - python scripts/update_symlinks_cross_platform.py - make protolint_install_win - # just check protolint runs - protolint version - curl https://dist.ipfs.tech/go-ipfs/v0.6.0/go-ipfs_v0.6.0_windows-amd64.zip -o go-ipfs_v0.6.0.zip - Expand-Archive -Path go-ipfs_v0.6.0.zip -DestinationPath ~\Apps\ - cp ~\Apps\go-ipfs\ipfs.exe C:\Users\runneradmin\go\bin\ - ipfs init - - - if: True name: Framework unit tests run: | @@ -529,43 +63,3 @@ jobs: - name: Plugin unit tests run: | tox -e plugins-py${{ matrix.python_version }} -- -m 'not integration and not unstable and not profiling' - - - if: matrix.os == 'ubuntu-latest' && matrix.python_version == '3.10' - name: Show full coverage report - run: | - pip install tomte[tests]==0.2.13 - coverage report -m -i - - - if: matrix.os == 'ubuntu-latest' && matrix.python_version == '3.10' - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: ./coverage.xml - flags: unittests - name: codecov-umbrella - fail_ci_if_error: false - - golang_checks: - continue-on-error: True - needs: - - common_checks_1 - - common_checks_2 - - common_checks_3 - - common_checks_4 - - dependencies_checks - - plugins_install_check - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.10"] - timeout-minutes: 45 - steps: - - uses: actions/checkout@master - - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - uses: actions/setup-go@v3 - with: - go-version: "1.17.7" diff --git a/tests/test_cli/test_check_packages.py b/tests/test_cli/test_check_packages.py index 86747cd420..371116645a 100644 --- a/tests/test_cli/test_check_packages.py +++ b/tests/test_cli/test_check_packages.py @@ -229,7 +229,7 @@ def test_check_public_id_failure_wrong_public_id( """Test `check_public_id` failure.""" with mock.patch( - "re.findall", + "aea.cli.check_packages.re.findall", side_effect=test_param.side_effect, ), _find_all_configuration_files_patch( [self.test_connection_config] diff --git a/tox.ini b/tox.ini index 8a286a8c86..0b6870a671 100644 --- a/tox.ini +++ b/tox.ini @@ -93,7 +93,7 @@ commands = ; for some reason tox installs aea without respect to the dependencies version specified in seetup.py. at least in CI env ; so install current aea in a normal way {[commands-local-install]commands} - pytest -rfE --doctest-modules aea tests/ --durations=0 --cov=aea --cov-report=html --cov-report=xml --cov-report=term --cov-report=term-missing --cov-config=.coveragerc --cov-append {posargs} + pytest tests/test_cli/test_check_packages.py::TestCheckPackagesCommand::test_check_public_id_failure_wrong_public_id [test-packages] deps =