Skip to content

add Ci checks with github actions #2

add Ci checks with github actions

add Ci checks with github actions #2

Workflow file for this run

name: Build and Test Frontend
on:
push:
branches:
- main
- dkijania/**
pull_request:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
services:
docker:
image: docker:dind
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: |
docker build --no-cache -t directcuteo/mina-frontend:latest -f Dockerfile2 .
- name: Start frontend server
run: |
docker run -d --name frontend-server --privileged directcuteo/mina-frontend:latest
- name: Setup Node.js for Cypress
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Cypress dependencies
run: npm install
test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
test-spec:
- "cypress/e2e/dashboard/nodes/dashboard-nodes-table.cy.ts"
- "cypress/e2e/network/messages/network-messages-table.cy.ts"
- "cypress/e2e/network/blocks/network-blocks-table.cy.ts"
- "cypress/e2e/network/blocks/network-blocks-toolbar.cy.ts"
- "cypress/e2e/network/blocks/network-blocks-side-panel.cy.ts"
- "cypress/e2e/network/blocks-ipc/network-blocks-ipc-table.cy.ts"
- "cypress/e2e/network/blocks-ipc/network-blocks-ipc-toolbar.cy.ts"
- "cypress/e2e/network/blocks-ipc/network-blocks-ipc-side-panel.cy.ts"
- "cypress/e2e/explorer/blocks/explorer-blocks-table.cy.ts"
- "cypress/e2e/explorer/snark-pool/explorer-snark-pool-table.cy.ts"
- "cypress/e2e/explorer/snark-pool/explorer-snark-pool-toolbar.cy.ts"
- "cypress/e2e/explorer/scan-state/explorer-scan-state.cy.ts"
- "cypress/e2e/explorer/snark-traces/explorer-snark-traces-table.cy.ts"
- "cypress/e2e/explorer/snark-traces/explorer-snark-traces-toolbar.cy.ts"
- "cypress/e2e/web-node/wallet/web-node-wallet.cy.ts"
- "cypress/e2e/web-node/logs/web-node-logs.cy.ts"
- "cypress/e2e/web-node/peers/web-node-peers.cy.ts"
services:
docker:
image: docker:dind
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: |
docker build --no-cache -t directcuteo/mina-frontend:latest -f Dockerfile2 .
- name: Start frontend server
run: |
docker run -d --name frontend-server --privileged directcuteo/mina-frontend:latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm install
- name: Run Cypress test
uses: cypress-io/github-action@v6
with:
config-file: cypress.config.js
spec: ${{ matrix.test-spec }}
install: false
- name: Upload test videos on failure
if: failure()
uses: actions/upload-artifact@v3
with:
name: cypress-videos-${{ strategy.job-index }}
path: cypress/videos/
retention-days: 7
- name: Upload test screenshots on failure
if: failure()
uses: actions/upload-artifact@v3
with:
name: cypress-screenshots-${{ strategy.job-index }}
path: cypress/screenshots/
retention-days: 7