name: Reusable Run E2E Test Suite Workflow on: workflow_call: 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 ports: - 9001:9001 db: image: mysql:8 env: MYSQL_DATABASE: standard_notes_db MYSQL_USER: std_notes_user MYSQL_PASSWORD: changeme123 MYSQL_ROOT_PASSWORD: changeme123 ports: - 3306:3306 cache: image: redis:6.0-alpine ports: - 6379:6379 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: Build Docker image for E2E testing uses: docker/build-push-action@v3 with: builder: ${{ steps.buildx.outputs.name }} context: . file: Dockerfile platforms: linux/amd64,linux/arm64 push: true tags: standardnotes/server:${{ github.sha }} - name: Run Server run: docker run -d standardnotes/server:${{ github.sha }} env: EXPOSED_PORT: 3123 EXPOSED_FILES_SERVER_PORT: 3125 PUBLIC_FILES_SERVER_URL: http://localhost:3125 DB_HOST: localhost DB_PORT: 3306 DB_USERNAME: std_notes_user DB_PASSWORD: changeme123 DB_DATABASE: standard_notes_db REDIS_PORT: 6379 REDIS_HOST: localhost AUTH_SERVER_ACCESS_TOKEN_AGE: 4 AUTH_SERVER_REFRESH_TOKEN_AGE: 10 AUTH_SERVER_EPHEMERAL_SESSION_AGE: 300 SYNCING_SERVER_REVISIONS_FREQUENCY: 5 AUTH_SERVER_LOG_LEVEL: debug SYNCING_SERVER_LOG_LEVEL: debug FILES_SERVER_LOG_LEVEL: debug REVISIONS_SERVER_LOG_LEVEL: debug API_GATEWAY_LOG_LEVEL: debug - name: Wait for server to start run: docker/wait-for.sh localhost 3123 - name: Run E2E Test Suite run: yarn dlx mocha-headless-chrome --timeout 1200000 -f http://localhost:9001/mocha/test.html