Skip to content

chore(deps): bump node from 22-slim to 26-slim #664

chore(deps): bump node from 22-slim to 26-slim

chore(deps): bump node from 22-slim to 26-slim #664

Workflow file for this run

name: CI
on:
push:
branches: ['**']
tags:
- 'v*.*.*'
permissions:
contents: write
packages: write
jobs:
lint-and-build:
name: Lint and Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run linter
run: pnpm lint
- name: Run build
run: pnpm build
env:
# Required env vars for build (using dummy values)
DATABASE_URL: postgresql://dummy:dummy@localhost:5432/dummy
BASE_URL: http://localhost:8080
SECRET_KEY: dummy-secret-key-for-ci-build-only
NEXTAUTH_SECRET: dummy-secret-key-for-ci-build-only
NEXTAUTH_URL: http://localhost:8080
typecheck:
name: TypeScript Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm exec tsc --noEmit
test:
name: Integration Tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: replane_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/replane_test
BASE_URL: http://localhost:8080
SECRET_KEY: test-secret-key-for-ci
NEXTAUTH_SECRET: test-secret-key-for-ci
NEXTAUTH_URL: http://localhost:8080
e2e:
name: E2E Tests
uses: ./.github/workflows/e2e.yml
bench:
name: Benchmark Tests
uses: ./.github/workflows/bench.yml
soak:
name: Soak Tests
needs: [lint-and-build, typecheck, test, e2e, bench]
if: startsWith(github.ref, 'refs/tags/v')
uses: ./.github/workflows/bench.yml
with:
test_duration: '3h'
timeout_minutes: 240
release:
name: Release Docker Image
needs: [lint-and-build, typecheck, test, e2e, bench]
if: startsWith(github.ref, 'refs/tags/v')
uses: ./.github/workflows/release.yml
with:
benchmark_results: ${{ needs.soak.outputs.results }}
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
deploy-production:
name: Deploy to Production
needs: [lint-and-build, typecheck, test, e2e, bench]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup Fly.io CLI
uses: superfly/flyctl-actions/setup-flyctl@master
- name: Deploy to Fly.io
run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}