Skip to content

Commit

Permalink
build: Update husky to version 9.1.4 and add prepare script for husky
Browse files Browse the repository at this point in the history
  • Loading branch information
wajeht committed Aug 8, 2024
1 parent 33e1feb commit f328516
Show file tree
Hide file tree
Showing 6 changed files with 188 additions and 0 deletions.
161 changes: 161 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
name: CI

on:
push:
branches: [main]
pull_request:

env:
# app
APP_PORT: 80
APP_ENV: 'development'
APP_URL: 'localhost'

# redis
REDIS_HOST: 'redis'
REDIS_PORT: 6379
REDIS_PASSWORD: 'password'

# database
DB_PORT: 5432
DB_HOST: 'postgres'
DB_USERNAME: 'username'
DB_PASSWORD: 'password'
DB_DATABASE: 'database'

# email
EMAIL_HOST: 'mailhot'
EMAIL_PORT: 1025
EMAIL_ALIAS: '[email protected]'
EMAIL_AUTH_EMAIL: '[email protected]'
EMAIL_AUTH_PASS: 'password'

# twilio
TWILIO_ACCOUNT_SID: ''
TWILIO_AUTH_TOKEN: ''
TWILIO_FROM_PHONE_NUMBER: ''
TWILIO_PHONE_NUMBER: ''

jobs:
test:
name: Unit tests
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [22.x]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Create .env file from .env.example
run: cp .env.example .env

- name: Install dependencies
run: npm i

- name: Test codes
run: npm run test:coverage

lint:
name: ESLint
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [22.x]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm i

- name: Lint codes
run: npm run lint

format:
needs: [lint, test]
name: Prettier format
runs-on: ubuntu-latest

permissions:
contents: write

strategy:
matrix:
node-version: [22.x]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm i

- name: Format codes
run: npm run format

- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'style: format codes'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# deploy:
# needs: [test, lint, format]
# name: Deploy to Production
# runs-on: ubuntu-latest
# if: github.event_name == 'push' && github.ref == 'refs/heads/main'

# environment:
# name: production
# url: https://commit.jaw.dev/

# steps:
# - name: Check out repository
# uses: actions/checkout@v3

# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2

# - name: Login to Container Registry
# uses: docker/login-action@v2
# with:
# registry: ghcr.io
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GH_TOKEN }}

# - name: Preset Image Name
# run: echo "IMAGE_URL=$(echo ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:$(echo ${{ github.sha }} | cut -c1-7) | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV

# - name: Build and push Docker Image
# uses: docker/build-push-action@v4
# with:
# context: .
# file: ./Dockerfile.prod
# push: true
# tags: ${{ env.IMAGE_URL }}

# - name: Deploy Image to Server
# uses: caprover/[email protected]
# with:
# server: '${{ secrets.CAPROVER_SERVER }}'
# app: '${{ secrets.APP_NAME }}'
# token: '${{ secrets.APP_TOKEN }}'
# image: ${{ env.IMAGE_URL }}
6 changes: 6 additions & 0 deletions .husky/pre-push
100644 → 100755
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run format
npm run lint
npm run test
1 change: 1 addition & 0 deletions docs/contribution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 🤝 Contribution
1 change: 1 addition & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 💻 Development
17 changes: 17 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"description": "send notification to discord, email, and sms",
"main": "index.js",
"scripts": {
"prepare": "husky",
"start": "node --no-warnings ./dist/src/server.js",
"dev": "tsx watch --no-warnings --clear-screen=false ./src/server.ts",
"build": "tsc",
Expand Down Expand Up @@ -60,6 +61,7 @@
"@typescript-eslint/parser": "^7.16.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
"husky": "^9.1.4",
"ioredis-mock": "^8.9.0",
"prettier": "^3.3.3",
"tsx": "^4.16.5",
Expand Down

0 comments on commit f328516

Please sign in to comment.