Skip to content

fix(ci): generate client requires a full start-up #2656

fix(ci): generate client requires a full start-up

fix(ci): generate client requires a full start-up #2656

name: typescript-service-starter
on: [push]
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
jobs:
dependencies:
name: πŸ“¦ Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
lint:
name: πŸ”¬ Lint & Format
runs-on: ubuntu-latest
needs: [dependencies]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: πŸ”¬ Lint & Format
run: node --run lint:check
audit:
name: πŸ›‘οΈ Audit
runs-on: ubuntu-latest
needs: [dependencies]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- name: πŸ›‘οΈ Audit
run: npm audit --audit-level=high
spell:
name: 🈸 Spellcheck
runs-on: ubuntu-latest
needs: [dependencies]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: 🈸 Spellcheck
run: node --run spell:check
type:
name: Κ¦ Typecheck
runs-on: ubuntu-latest
needs: [dependencies]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: Κ¦ Typecheck
run: node --run type:check
test:
name: ⚑ Tests
runs-on: ubuntu-latest
needs: [dependencies]
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
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: Build environment
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
echo "HTTP_COOKIE_SIGNING_SECRET=$(node --run generate-secret)" >> $GITHUB_ENV
- name: ⚑ Tests
run: node --run test:coverage
test-setup:
name: ⚑ Setup tests
runs-on: ubuntu-latest
needs: [dependencies]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: ⚑ Tests
run: node --run test:setup
build-and-release:
name: πŸš€ Generate client & release
needs: [lint, audit, spell, type, test]
runs-on: ubuntu-latest
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
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "npm"
- run: npm ci
- name: Build environment
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
echo "HTTP_COOKIE_SIGNING_SECRET=$(node --run generate-secret)" >> $GITHUB_ENV
- name: πŸ“¦ Generate client
run: node --run generate-client
- name: πŸš€ Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: node --run semantic-release