Skip to content

test: block google analytics when running tests (#951) #1582

test: block google analytics when running tests (#951)

test: block google analytics when running tests (#951) #1582

Workflow file for this run

name: Validate
on:
pull_request:
branches: [main]
push:
branches: main
env:
DOCKER_APP_IMAGE_NAME: 'ghcr.io/hasadna/open-bus-map-search/open-bus-map-search'
DOCKER_APP_IMAGE_TAG: 'latest'
jobs:
local-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: make sure no yarn.json is added
run: |
if [ -f yarn.json ]; then
echo "::error file=yarn.json::yarn.json is being added"
exit 1
fi
- name: make sure no package-lock.json is removed
run: |
if [ ! -f package-lock.json ]; then
echo "::error file=package-lock.json::package-lock.json is being removed"
exit 1
fi
- name: make sure package-lock.json is updated
run: |
if ! npm ci; then
echo "::error file=package-lock.json::package-lock.json is not updated"
exit 1
fi
- name: lint
run: npm run lint
- name: madge
run: npx madge --extensions js,ts --circular .
- name: unit tests
run: npm run test:unit
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and Export Docker image
uses: docker/build-push-action@v2
with:
context: .
tags: ${{ env.DOCKER_APP_IMAGE_NAME }}:${{ env.DOCKER_APP_IMAGE_TAG }}
outputs: type=docker, dest=/tmp/docker-image.tar
- name: Save Docker image
uses: actions/upload-artifact@v4
with:
name: docker-image
path: /tmp/docker-image.tar
test:
runs-on: ubuntu-latest
needs: build
env:
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_LOG_DIR: ./logs
APPLITOOLS_SHOW_LOGS: true
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: docker-image
path: /tmp
- name: Load image
run: docker load -i /tmp/docker-image.tar
- name: Run application
run: docker run -d -p 3000:80 ${{ env.DOCKER_APP_IMAGE_NAME }}:${{ env.DOCKER_APP_IMAGE_TAG }}
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
run: npm ci
- run: npx playwright install
- name: Run test
run: npm test
- name: Run Storybook tests
if: env.APPLITOOLS_API_KEY
run: npx -y @applitools/eyes-storybook --storybook-url http://localhost:3000/storybook/index.html
- name: Prepare playwright artifact directory
if: always()
run: |
mkdir -p playwright-artifact
cp -r test-results/* playwright-artifact/
cp -r playwright-report/* playwright-artifact/
- name: upload combined playwright artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright
path: playwright-artifact
- name: upload logs if exists
if: always()
uses: actions/upload-artifact@v4
with:
name: logs
path: logs
if-no-files-found: warn
publish-test-results:
runs-on: ubuntu-latest
needs: test
if: always() && github.event.repository.fork == false && github.actor != 'dependabot[bot]'
env:
AWS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: playwright
path: test-results
- uses: shallwefootball/s3-upload-action@master
name: Publish test results
if: always() && ${{ env.AWS_KEY_ID }}
id: s3-trace
continue-on-error: true
with:
aws_key_id: ${{env.AWS_KEY_ID}}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
aws_bucket: noam-gaash.co.il
source_dir: test-results
destination_dir: ${{ github.run_id }}/open-bus/${{ github.sha }}/test-results
- name: Set test results
uses: myrotvorets/set-commit-status-action@master
if: always() && ${{ env.AWS_KEY_ID }}
with:
sha: ${{ github.sha }}
token: ${{ secrets.GITHUB_TOKEN }}
description: 'Playwright html report with traces'
status: ${{needs.test.result}}
context: 'Test results'
targetUrl: 'https://s3.amazonaws.com/noam-gaash.co.il/${{ github.run_id }}/open-bus/${{ github.sha }}/test-results/index.html'
build-outside-docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
run: npm ci
- name: build
run: npm run build
- name: build storybook
run: npm run build-storybook
all-passed:
runs-on: ubuntu-latest
needs: [local-tests, test]
steps:
- name: All passed
run: echo "All passed"