version: 19
jobs:
- name: next build
  steps:
  - !CheckoutStep
    name: checkout
    cloneCredential: !DefaultCredential {}
    withLfs: false
    withSubmodules: false
    condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
  - !SetBuildVersionStep
    name: set build version
    buildVersion: '@script:builtin:node:determine-project-version@'
    condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
  - !CommandStep
    name: build & test
    runInContainer: true
    image: node:lts-hydrogen
    interpreter: !DefaultInterpreter
      commands:
      - npm install
      - export CI=TRUE
      - export DATABASE_URL=file:./db.sqlite
      - npx next build
    useTTY: false
    condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
  - !PublishArtifactStep
    name: publish
    artifacts: '*'
    condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
  triggers:
  - !BranchUpdateTrigger {}
  retryCondition: never
  maxRetries: 3
  retryDelay: 30
  caches:
  - key: npm-cache
    path: /root/.npm
  timeout: 3600
  postBuildActions:
  - !RunJobAction
    condition: successful
    jobName: deploy
- name: deploy
  steps:
  - !BuildImageStep
    name: deploy
    tags: pchl:latest
    publish: false
    condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
  jobDependencies:
  - jobName: next build
    requireSuccessful: true
    artifacts: '**'
  retryCondition: never
  maxRetries: 3
  retryDelay: 30
  timeout: 3600
services:
- name: run
  image: node:lts-hydrogen
  arguments: npm start
  readinessCheckCommand: npm run build
