From af810a3190740cfe3b13dc481a3678febc02e53d Mon Sep 17 00:00:00 2001 From: Evgeniy Zayats Date: Wed, 30 Oct 2024 16:59:39 -0400 Subject: [PATCH] .github: use common system tests workflow Signed-off-by: Evgeniy Zayats --- .github/workflows/system-tests.yml | 214 +++-------------------------- 1 file changed, 16 insertions(+), 198 deletions(-) diff --git a/.github/workflows/system-tests.yml b/.github/workflows/system-tests.yml index 0eb5424b..d1d16d6b 100644 --- a/.github/workflows/system-tests.yml +++ b/.github/workflows/system-tests.yml @@ -16,209 +16,27 @@ on: - published workflow_dispatch: inputs: - neofs-s3-gw_ref: + neofs_s3_gw_ref: description: 'neofs-s3-gw ref. Default ref - latest master. Examples: v0.27.0, 8fdcc6d7e798e6511be8806b81894622e72d7fdc, branch_name' required: false default: '' permissions: write-all -env: - ALLURE_RESULTS_DIR: ${{ github.workspace }}/allure-results jobs: run_system_tests: - runs-on: ubuntu-latest - timeout-minutes: 500 - steps: - - name: Get the current date - id: date - run: echo "::set-output name=timestamp::$(date +%s)" - - - name: Set RUN_ID - env: - TIMESTAMP: ${{ steps.date.outputs.timestamp }} - run: echo "RUN_ID=${{ github.run_number }}-$TIMESTAMP" >> $GITHUB_ENV - - - name: Checkout neofs-testcases repository - uses: actions/checkout@v4 - with: - repository: nspcc-dev/neofs-testcases - ref: master - path: neofs-testcases - - - name: Checkout neofs-node repository - uses: actions/checkout@v4 - with: - repository: nspcc-dev/neofs-node - ref: v0.43.0 - path: neofs-node - - - name: Checkout neofs-s3-gw repository - uses: actions/checkout@v4 - with: - path: neofs-s3-gw - -################################################################# - - name: Set up Go - uses: actions/setup-go@v5 - with: - cache: true - go-version: '1.23' - - run: go version - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - 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 - timeout-minutes: 5 - run: | - make all - working-directory: neofs-node - - - name: Build neofs-s3-gw binaries - run: | - make all - working-directory: neofs-s3-gw - - - name: Download latest stable neo-go - uses: dsaltares/fetch-gh-release-asset@1.1.1 - with: - repo: 'nspcc-dev/neo-go' - version: 'tags/v0.106.3' - file: 'neo-go-linux-amd64' - target: 'neofs-testcases/neo-go' - - - name: Prepare venv - id: prepare_venv - timeout-minutes: 30 - run: | - make venv.pytest - echo "$(pwd)" >> $GITHUB_PATH - working-directory: neofs-testcases - - - name: Copy built binaries - timeout-minutes: 30 - run: | - cp bin/* ${GITHUB_WORKSPACE}/neofs-testcases/ - working-directory: neofs-node - - - name: Copy neofs-s3-gw binaries to testcases directory - run: | - cp bin/* ${GITHUB_WORKSPACE}/neofs-testcases/ - working-directory: neofs-s3-gw - - - name: Chmod binaries - run: | - sudo chmod a+x neofs-cli - sudo chmod a+x neofs-adm - sudo chmod a+x neofs-ir - sudo chmod a+x neofs-lens - sudo chmod a+x neofs-node - sudo chmod a+x neo-go - sudo chmod a+x neofs-s3-authmate - sudo chmod a+x neofs-s3-gw - working-directory: neofs-testcases - - - name: Log environment - run: | - echo "Check free space" - df -h - 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 current dir" - ls -lah - echo "==========================================" - working-directory: neofs-testcases - - - name: Run s3 gw e2e tests - timeout-minutes: 120 - run: | - source venv.pytest/bin/activate && pytest --alluredir=${{ env.ALLURE_RESULTS_DIR }} pytest_tests/tests/s3 - working-directory: neofs-testcases - - - name: Publish to NeoFS - id: put_report - if: always() && steps.prepare_venv.outcome == 'success' - uses: nspcc-dev/gh-push-allure-report-to-neofs@master - with: - NEOFS_WALLET: ${{ secrets.TEST_RESULTS_WALLET }} - NEOFS_WALLET_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} - NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} - NEOFS_HTTP_GATE: ${{ vars.TEST_RESULTS_HTTP_GATE }} - STORE_OBJECTS_CID: ${{ vars.TEST_RESULTS_CID }} - PR_LIFETIME: ${{ vars.PR_EXPIRATION_PERIOD }} - MASTER_LIFETIME: ${{ vars.MASTER_EXPIRATION_PERIOD }} - MANUAL_RUN_LIFETIME: ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }} - OTHER_LIFETIME: ${{ vars.OTHER_EXPIRATION_PERIOD }} - ALLURE_RESULTS_DIR: ${{ env.ALLURE_RESULTS_DIR }} - ALLURE_GENERATED_DIR: 'neofs-test-allure-generated-report' - - - name: Post link to report - id: post_report_link - timeout-minutes: 60 - if: always() && steps.put_report.outcome == 'success' - env: - REPORT_NEOFS_URL: ${{ steps.put_report.outputs.REPORT_NEOFS_URL }}index.html - uses: Sibz/github-status-action@v1 - with: - authToken: ${{secrets.GITHUB_TOKEN}} - context: 'System tests report' - state: 'success' - sha: ${{github.event.pull_request.head.sha || github.sha}} - target_url: ${{ env.REPORT_NEOFS_URL }} + uses: nspcc-dev/neofs-testcases/.github/workflows/system-tests.yml@master + with: + neofs_network_domain: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} + neofs_http_gate: ${{ vars.TEST_RESULTS_HTTP_GATE }} + neofs_store_objects_cid: ${{ vars.TEST_RESULTS_CID }} + neofs_pr_expiration_period: ${{ vars.PR_EXPIRATION_PERIOD }} + neofs_master_expiration_period: ${{ vars.MASTER_EXPIRATION_PERIOD }} + neofs_manual_expiration_period: ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }} + neofs_other_expiration_period: ${{ vars.OTHER_EXPIRATION_PERIOD }} + neofs_testcases_commit: 'master' + neofs_s3_gw_commit: ${{ github.event.inputs.neofs_s3_gw_ref }} + tests_path: 'pytest_tests/tests/s3' + tests_parallel_level: 3 + os: '[{runner: "ubuntu-latest", binary: "linux-amd64"}, {runner: "macos-14", binary: "darwin-arm64"}]' + secrets: inherit