mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-01-02 14:03:08 +00:00
* chore: parameters and volumes for RLN relay * chore: add startup test for RLN * fix: remove redundant rln_enabled from WakuNode * fix: - and _ magic in rln parameters * fix: key 'eth_testnet_key' -> 'eth_client_private_key' * fix: rln-register_only -> rln-register-only * fix: use extend instead of append for the volumes list * fix: use absolute path for the volumes names - mark volumes shared across containers * fix: remove :z attr from volumes * fix: remove filename from volume path * fix: remove request for ENR * test: plain RLN registration * fix: remove subscribe * fix: remove ENR related params * test: add run_container func to Docker Mananger * fix: remove run_container func from Docker Mananger - no need for exec * fix: pass exec commands instead of specialized docker exec func * fix: exclude RLN arguments from others * fix: separate RLN volumes by implementation * test: registration with nwaku * test: registration over existing credentials * test: add RLN Relay node startup * test: RLN credentials reuse for relay node startup * fix: clean up unnecessary commands * fix: clean up unnecessary commands for non RLN relay too * test: regression by sending one valid message * fix: add forgotten call to get enr_uri * fix: check RLN credentials set properly * fix: parenthesis in eval expression * fix: better check for RLN credentials * fix: update to new flags - gowaku - separate private key for go/nwaku * test: register RLN * fix: RLN credentials check * fix: remove enable rln-relay flag from registration * test: reorder commands to check go-waku registration * fix: restructure if statements for RLN registration * fix: different set of flag for RLN registration and operation * fix: forgotten "eth" in eth-contract-address * fix: remove redundant None from get_env_var call * fix: refactor rln credentials parsing from start function * fix: missed second return value * test: call to parse_rln_credentials * fix: remove redundant self in call to parse_rln_credentials * fix: remove rln related values if not valid * fix: refactored to accept multiple private keys - JSON source for RLN credentials - removed go-waku support for RLN * test: register RLN with 2 nwaku nodes * fix: missing open file, key errors * fix: return effective keystore_path * fix: cleanup unused env variables * fix: cleanup unused env variables from relay * fix: wait longer for credentials file to be written to disk * test: remove waiting for credentials file to be written to disk * fix: add select_private_key() * fix: merge parse_rln_credentials and parse_rln_registration_credentials * test: wait for filesystem cache * test: try with os.sync to flush cache * test: stop container to clear cache * fix: 15 sec wait + stop container to clear cache * test: RLN registration test with fixture and cred file check * test: added allure.step - RLN registration for single node - corresponding test to register all keys * fix: f-strings in the test * fix: sync naming for register_main_rln_relay_nodes * fix: add WARN message to log unset and expected RLN credentials * fix: pytest.skip added to exit tests when non nwaku image is used * fix: swap NODE2 for DEFAULT_NWAKU * fix: let rln_credential_store_ready to raise exception for retry * fix: let register_rln to raise exception too, when credential fine still not available * fix: remove container stop * fix: tune down retry timeouts * fix: remove unnecessary f-string * test: reduce unnecessary variables init * test: undo reduce unnecessary variables init * test: increase timeout for rln_credential_store_ready * test: refactor kwargs handling into sanitize_docker_flags * fix: created RLN registration check - changed rln_credential_store_ready to function * fix: delete unnecessary ports from register_rln init * fix: remove wait for registration entirely * test: RLN_CREDENTIALS env var example * fix: check_rln_registration to raise exception * fix: use f-string at check_rln_registration * fix: add gen_step_id function * fix: RLN_CREDENTIALS as loaded from .env * fix: RLN_CREDENTIALS example, skipping test if not set * test: RLN with actions * fix: tune up RLN timeouts for Github runners * test: filesystem write to / * fix: change RLN data to be stored at working directory * fix: catch exception instead of "if not" - print out container log * fix: wrap logs into debug msg * fix: print log file * fix: remove additional logging * fix: exit RLN cred parsing sooner when not used - delete proper keys from default_args * fix: Allure report * fix: Discord notifications * fix: remove f-string * fix: delete test workflow
111 lines
3.6 KiB
YAML
111 lines
3.6 KiB
YAML
name: Interop Tests Common
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
node1:
|
|
required: true
|
|
description: "Node that usually publishes messages. Used for all tests"
|
|
type: string
|
|
default: "harbor.status.im/wakuorg/go-waku:latest"
|
|
node2:
|
|
required: true
|
|
description: "Node that usually queries for published messages. Used for all tests"
|
|
type: string
|
|
default: "harbor.status.im/wakuorg/nwaku:latest"
|
|
additional_nodes:
|
|
required: false
|
|
description: "Additional optional nodes used in e2e tests, separated by ,"
|
|
type: string
|
|
default: "harbor.status.im/wakuorg/nwaku:latest,harbor.status.im/wakuorg/go-waku:latest,harbor.status.im/wakuorg/nwaku:latest"
|
|
caller:
|
|
required: false
|
|
description: "Workflow caller. Used in reporting"
|
|
type: string
|
|
|
|
env:
|
|
FORCE_COLOR: "1"
|
|
NODE_1: ${{ inputs.node1 }}
|
|
NODE_2: ${{ inputs.node2 }}
|
|
ADDITIONAL_NODES: ${{ inputs.additional_nodes }}
|
|
CALLER: ${{ inputs.caller || 'manual' }}
|
|
RLN_CREDENTIALS: ${{ secrets.RLN_CREDENTIALS }}
|
|
|
|
jobs:
|
|
|
|
tests:
|
|
name: tests
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.12'
|
|
cache: 'pip'
|
|
|
|
- run: pip install -r requirements.txt
|
|
|
|
- name: Run tests
|
|
run: pytest -n 4 --reruns 1 --alluredir=allure-results
|
|
|
|
- name: Get allure history
|
|
if: always()
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: gh-pages
|
|
path: gh-pages
|
|
|
|
- name: Setup allure report
|
|
uses: simple-elf/allure-report-action@master
|
|
if: always()
|
|
id: allure-report
|
|
with:
|
|
allure_results: allure-results
|
|
gh_pages: gh-pages/${{ env.CALLER }}
|
|
allure_history: allure-history
|
|
keep_reports: 30
|
|
|
|
- name: Deploy report to Github Pages
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
if: always()
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_branch: gh-pages
|
|
publish_dir: allure-history
|
|
destination_dir: ${{ env.CALLER }}
|
|
|
|
- name: Create job summary
|
|
if: always()
|
|
env:
|
|
JOB_STATUS: ${{ job.status }}
|
|
run: |
|
|
echo "## Run Information" >> $GITHUB_STEP_SUMMARY
|
|
echo "- **Event**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "- **Actor**: ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "- **Node1**: ${{ env.NODE_1 }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "- **Node2**: ${{ env.NODE_2 }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "- **Additonal Nodes**: ${{ env.ADDITIONAL_NODES }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "## Test Results" >> $GITHUB_STEP_SUMMARY
|
|
echo "Allure report will be available at: https://waku-org.github.io/waku-interop-tests/${{ env.CALLER }}/${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY
|
|
if [ "$JOB_STATUS" != "success" ]; then
|
|
echo "There are failures with nwaku node. cc <@&1111608257824440330>" >> $GITHUB_STEP_SUMMARY
|
|
fi
|
|
{
|
|
echo 'JOB_SUMMARY<<EOF'
|
|
cat $GITHUB_STEP_SUMMARY
|
|
echo EOF
|
|
} >> $GITHUB_ENV
|
|
|
|
- name: Send report to Discord
|
|
uses: rjstone/discord-webhook-notify@v1
|
|
if: always() && env.CALLER != 'manual'
|
|
with:
|
|
severity: ${{ job.status == 'success' && 'info' || 'error' }}
|
|
username: ${{ github.workflow }}
|
|
description: "## Job Result: ${{ job.status }}"
|
|
details: ${{ env.JOB_SUMMARY }}
|
|
webhookUrl: ${{ secrets.DISCORD_TEST_REPORTS_WH }}
|