Skip to content

chore(package): update Node.js to version 21.0.0 #2095

chore(package): update Node.js to version 21.0.0

chore(package): update Node.js to version 21.0.0 #2095

name: Typescript Service Starter
on: [push]
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
jobs:
lint:
name: ⬣ ESLint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: ⬣ ESLint
run: npm run lint:check
audit:
name: 🛡️ Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: 🛡️ Audit
run: npm audit --audit-level=high
format:
name: 🔬 Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: 🔬 Format
run: npm run format:check
spell:
name: 🈸 Spellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: 🈸 Spellcheck
run: npm run spell:check
type:
name: ʦ Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: ʦ Typecheck
run: npm run type:check
test:
services:
postgres:
image: postgres
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: pwd
POSTGRES_DB: db
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis
ports:
- 6379:6379
options: --entrypoint redis-server
name: ⚡ Tests
runs-on: ubuntu-latest
steps:
- name: Build services urls
run: |
echo "DATABASE_URL=postgres://user:pwd@localhost:${{ job.services.postgres.ports[5432] }}/db" >> $GITHUB_ENV
echo "REDIS_URL=redis://localhost:${{ job.services.redis.ports[6379] }}" >> $GITHUB_ENV
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: ⚡ Tests
run: npm run test
env:
NODE_ENV: test
LOG_LEVEL: error
PORT: 8080
ADDRESS: 0.0.0.0
DATABASE_URL: ${{ env.DATABASE_URL }}
DATABASE_MAXIMUM_POOL_SIZE: 10
DATABASE_IDLE_TIMEOUT: 5s
DATABASE_STATEMENT_TIMEOUT: 20s
REDIS_URL: ${{ env.REDIS_URL }}
SECRET: 00000000-0000-0000-0000-000000000000
TRACING_SAMPLING: 0.2
- name: ⚡ Healthcheck test
run: npm run test:healthcheck
env:
NODE_ENV: test
LOG_LEVEL: debug
PORT: 8080
ADDRESS: 0.0.0.0
DATABASE_URL: ${{ env.DATABASE_URL }}
DATABASE_MAXIMUM_POOL_SIZE: 10
DATABASE_IDLE_TIMEOUT: 5s
DATABASE_STATEMENT_TIMEOUT: 20s
REDIS_URL: ${{ env.REDIS_URL }}
SECRET: 00000000-0000-0000-0000-000000000000
TRACING_SAMPLING: 0.2
test-setup:
name: ⚡ Setup tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: ⚡ Tests
run: npm run test:setup
build-and-release:
name: 🚀 Build & release
needs: [lint, audit, format, spell, type, test, test-setup]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: bahmutov/npm-install@v1
- name: 🔨 Build
run: npm run build
- name: 🚀 Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm run semantic-release