feat: Added complaint button, hidden as an easter egg 'complaint'. #1330
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v2 | |
with: | |
name: docker-image | |
path: /tmp/docker-image.tar | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
env: | |
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }} | |
steps: | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
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: upload playwright artifacts | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: playwright | |
path: test-results | |
- name: upload report | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: playwright | |
path: playwright-report | |
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@v3 | |
with: | |
name: playwright | |
path: test-results | |
- name: Publish test results | |
uses: shallwefootball/s3-upload-action@master | |
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: 'Test results: https://s3.amazonaws.com/noam-gaash.co.il/${{ github.run_id }}/open-bus/${{ github.sha }}/test-results/index.html' | |
status: success | |
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" |