name: test on: push jobs: test-api: runs-on: ubuntu-latest defaults: run: working-directory: ./api steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18.x" - name: install deps run: npm ci --ignore-scripts - name: build run: npm run build - name: test run: npm test env: AWS_ACCESS_KEY_ID: foo # needed for AWS_SECRET_ACCESS_KEY: bar # dynamodb connection services: dynamodb: image: amazon/dynamodb-local ports: - 8000:8000 test-frontend: runs-on: ubuntu-latest defaults: run: working-directory: ./frontend steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18.x" - name: install deps run: npm ci --legacy-peer-deps - name: build run: npm run build - name: test run: npm test test-infra: runs-on: ubuntu-latest defaults: run: working-directory: ./infra steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18.x" - name: install deps run: npm ci - name: test run: npm test license-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18.x" - name: install deps run: npm ci - name: run check run: npm run licenses:check e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18.x" - name: install deps run: | npm ci full_version=$(google-chrome --product-version) chrome_version=$(echo "${full_version%.*.*.*}") npm install chromedriver@$chrome_version - name: install cli run: | curl https://raw.githubusercontent.com/findy-network/findy-agent-cli/HEAD/install.sh > install.sh chmod a+x install.sh sudo ./install.sh -b /bin - name: init env run: ./e2e/init.sh - name: set env run: echo "ISSUER_TOOL_SERVER_CERT_PATH=$GITHUB_WORKSPACE/e2e/.build/findy-wallet-pwa/tools/env/config/cert" >> $GITHUB_ENV - name: run backend run: | cd api npm run db npm ci mkdir -p ../tests_output nohup npm start > /dev/null 2>../tests_output/backend.log & env: AWS_ACCESS_KEY_ID: "foo" AWS_SECRET_ACCESS_KEY: "bar" ISSUER_TOOL_SKIP_DEFAULT_CRED_DEFS: true - name: run frontend run: | cd frontend npm ci --legacy-peer-deps npm start & - name: run e2e run: npm run test:e2e - name: collect docker logs if: ${{ failure() }} uses: jwalton/gh-docker-logs@v2.2.2 with: dest: "./tests_output/docker-logs" - name: archive logs if: ${{ failure() }} uses: actions/upload-artifact@v4 with: name: tests_output path: tests_output