Skip to content

[feat] Added initial project configs #3

[feat] Added initial project configs

[feat] Added initial project configs #3

Workflow file for this run

name: Deploy
on:
pull_request:
types: [opened, synchronize]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Lint code
run: npm run lint
- name: Format code
run: npm run format
security-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Run npm audit for security vulnerabilities
run: npm audit
unit-test:
runs-on: ubuntu-latest
needs: [lint, security-scan]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Generate code coverage report
run: npm run test:unit:coverage
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: abdullahkabakk/url-shortener-website
component-test:
runs-on: ubuntu-latest
needs: [lint, security-scan]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Run component tests
run: npm run test:component
e2e-test:
runs-on: ubuntu-latest
needs: [unit-test, component-test]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Cypress run
uses: cypress-io/github-action@v6
with:
start: npm run dev
build: npm run build
wait-on: 'http://localhost:4173'
wait-on-timeout: 120
record: true
group: 'E2E Tests'
config-file: 'cypress.config.ts'
tag: ${{ github.sha }}
browser: chrome
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy:
runs-on: ubuntu-latest
needs: [e2e-test]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Build the application
run: npm run build
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: build
path: dist
- name: Deploy to Netlify
uses: nwtgck/[email protected]
with:
publish-dir: './dist'
production-branch: main
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: "Deploy from GitHub Actions"
enable-pull-request-comment: false
enable-commit-comment: true
overwrites-pull-request-comment: true
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 5