diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index ea4a47f504..03e9cb80cb 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -27,227 +27,19 @@ jobs: run_system_tests: runs-on: ubuntu-latest timeout-minutes: 500 + env: + TEST_RESULTS_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} + TEST_RESULTS_WALLET: ${{ secrets.TEST_RESULTS_WALLET }} + TEST_RESULTS_NEOFS_NETWORK_DOMAIN: "fs.neo.org" + TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} steps: - - name: Checkout neofs-testcases repository - uses: actions/checkout@v3 - with: - repository: nspcc-dev/neofs-testcases - ref: 'master' - path: neofs-testcases - - - name: Checkout neofs-dev-env repository - uses: actions/checkout@v3 - with: - repository: nspcc-dev/neofs-dev-env - ref: 'master' - path: neofs-dev-env - - - name: Checkout neofs-node repository - uses: actions/checkout@v3 - with: - path: neofs-node - -################################################################ - - name: Set up Go - uses: actions/setup-go@v4 - with: - cache: true - go-version: '1.20' - - run: go version - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10.11' - - run: python --version - -# Hashlib uses OpenSSL for ripemd160 and apparently OpenSSL disabled some older crypto algos around version 3.0 -# in November 2021. All the functions are still there but require manual enabling. -# See https://github.com/openssl/openssl/issues/16994 -# But we use ripemd160 for tests. -# For ripemd160 to be supported, we need the openssl configuration file to contain the following lines: -# openssl_conf = openssl_init -# -# [openssl_init] -# providers = provider_sect -# -# [provider_sect] -# default = default_sect -# legacy = legacy_sect -# -# [default_sect] -# activate = 1 -# -# [legacy_sect] -# activate = 1 - - name: Fix OpenSSL ripemd160 - run: | - sudo python ./tools/src/openssl_config_fix.py - working-directory: neofs-testcases - -################################################################ - - name: Build neofs-node (neofs-cli and neofs-adm) - timeout-minutes: 5 - run: | - make all - echo "$(pwd)/bin" >> $GITHUB_PATH - working-directory: neofs-node - -################################################################ - - name: Get TAG for docker images - run: | - echo "CURRENT_TAG=$( make version | sed 's/^v//' )" >> $GITHUB_ENV - working-directory: neofs-node - - - name: Build NeoFS storage docker image - timeout-minutes: 30 - run: | - make image-storage - working-directory: neofs-node - - - name: Build NeoFS Inner Ring docker image - timeout-minutes: 30 - run: | - make image-ir - working-directory: neofs-node - - - name: Add NeoFS storage and NeoFS ir docker TAGs to testcases-env config file - run: | - sed -i "s/NODE_VERSION=.*/NODE_VERSION=${{ env.CURRENT_TAG }}/g" .github/testcases-env - sed -i "s/IR_VERSION=.*/IR_VERSION=${{ env.CURRENT_TAG }}/g" .github/testcases-env - working-directory: neofs-node - -################################################################ - - name: Copy testcases-env file to testcases-env in neofs-dev-env - run: | - cp .github/testcases-env ${GITHUB_WORKSPACE}/neofs-dev-env/.env - working-directory: neofs-node - - - name: Prepare hosts - timeout-minutes: 5 - run: | - make get - sudo ./bin/update_hosts.sh - sudo chmod a+w vendor/hosts - working-directory: neofs-dev-env - - - name: Prepare test environment - timeout-minutes: 30 - run: | - make prepare-test-env - echo "$(pwd)/vendor" >> $GITHUB_PATH - working-directory: neofs-dev-env - -################################################################ - - name: Log environment - run: | - echo "Check free space" - df -h - echo "==========================================" - - echo "Check /etc/hosts" - cat /etc/hosts - echo "==========================================" - - echo "Check docker images" - docker images - echo "==========================================" - - echo "Check docker ps" - docker ps - echo "==========================================" - - echo "Check neo-go version" - neo-go --version - echo "==========================================" - - echo "Check neofs-s3-authmate version" - neofs-s3-authmate --version - echo "==========================================" - - echo "Check neofs-s3-gw version" - echo "==========================================" - neofs-s3-gw --version - echo "==========================================" - - echo "Check neofs-adm version" - neofs-adm --version - echo "==========================================" - - echo "Check neofs-ir version" - neofs-ir --version - echo "==========================================" - - echo "Check neofs-lens version" - neofs-lens --version - echo "==========================================" - - echo "Check neofs-cli version" - neofs-cli --version - echo "==========================================" - - echo "Check vendor dir" - ls -lah "${GITHUB_WORKSPACE}/neofs-dev-env/vendor" - echo "==========================================" - - echo "Check bin dir" - ls -lah "${GITHUB_WORKSPACE}/neofs-node/bin" - echo "==========================================" - working-directory: neofs-dev-env - -################################################################ - - name: Prepare venv - timeout-minutes: 30 - run: | - make venv.local-pytest - working-directory: neofs-testcases - - - name: Run Sanity tests for pull requests - timeout-minutes: 120 - if: github.event_name == 'pull_request' - run: | - source venv.local-pytest/bin/activate && pytest --show-capture=no -m "sanity" --alluredir=${GITHUB_WORKSPACE}/allure-results pytest_tests/testsuites - working-directory: neofs-testcases - - - name: Run all tests for other events - timeout-minutes: 480 - if: github.event_name != 'pull_request' + - name: Put allure report to NeoFS + if: always() run: | - source venv.local-pytest/bin/activate && pytest --alluredir=${GITHUB_WORKSPACE}/allure-results pytest_tests/testsuites + sudo chmod -R a+rw ${GITHUB_WORKSPACE}/allure-report + source venv.local-pytest/bin/activate && python ./tools/src/process-allure-reports.py --neofs_domain $TEST_RESULTS_NEOFS_NETWORK_DOMAIN --run_id $RUN_ID --cid $TEST_RESULTS_CID --allure_report ${GITHUB_WORKSPACE}/allure-report --wallet wallet.json working-directory: neofs-testcases -################################################################ - - name: Get Allure history - timeout-minutes: 60 - uses: actions/checkout@v3 - if: always() - with: - ref: gh-pages - path: gh-pages - - - name: Allure Report action from marketplace - timeout-minutes: 60 - uses: simple-elf/allure-report-action@v1.6 - if: always() - id: allure-report - with: - keep_reports: 200 - allure_results: allure-results - allure_report: allure-report - gh_pages: gh-pages - allure_history: allure-history - - - name: Deploy report to Github Pages - timeout-minutes: 120 - if: always() - uses: peaceiris/actions-gh-pages@v3.9.3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_branch: gh-pages - publish_dir: allure-history - force_orphan: true - enable_jekyll: true - - name: Post the link to the report timeout-minutes: 60 if: always() @@ -257,4 +49,4 @@ jobs: context: 'Test report' state: 'success' sha: ${{github.event.pull_request.head.sha || github.sha}} - target_url: https://${{ github.repository_owner }}.github.io/neofs-node/${{ github.run_number }} + target_url: https://http.${{ env.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/index.html