name: Reusable Run E2E Test Suite Workflow on: workflow_call: inputs: snjs_image_tag: type: string default: latest description: The Docker image tag used for SNJS container secrets: DOCKER_USERNAME: required: true DOCKER_PASSWORD: required: true AWS_ACCESS_KEY_ID: required: true AWS_SECRET_ACCESS_KEY: required: true jobs: e2e: runs-on: ubuntu-latest services: snjs: image: standardnotes/snjs:${{ inputs.snjs_image_tag }} ports: - 9001:9001 mock-event-publisher: image: standardnotes/mock-event-publisher ports: - 3124:3000 env: LOG_LEVEL: debug NODE_ENV: production VERSION: snjs-test SNS_TOPIC_ARN: arn:aws:sns:us-east-1:000000000000:payments-local-topic SNS_ENDPOINT: http://localstack:4566 SNS_DISABLE_SSL: true SNS_SECRET_ACCESS_KEY: x SNS_ACCESS_KEY_ID: x SNS_AWS_REGION: us-east-1 NEW_RELIC_ENABLED: false options: >- --name "mock-event-publisher" steps: - uses: actions/checkout@v3 - name: Set up Node uses: actions/setup-node@v3 with: registry-url: 'https://registry.npmjs.org' node-version-file: '.nvmrc' - name: Run Server run: docker compose -f docker-compose.ci.yml up -d - name: Wait for server to start run: docker/is-available.sh http://localhost:3123 $(pwd)/logs - name: Connect external containers to self-hosted network run: docker network connect --alias mock-event-publisher standardnotes_self_hosted mock-event-publisher - name: Run E2E Test Suite run: yarn dlx mocha-headless-chrome --timeout 1200000 -f http://localhost:9001/mocha/test.html