# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Builds

on:
  # Push to any tracked branches
  push:
    branches: [main]
  # PRs only on main branch
  pull_request:
    branches: [main]
  # Manual trigger from the UI
  workflow_dispatch:
    inputs:
      message:
        description: 'Message for build'
        required: true

jobs:
  build:
    name: Ferdium Recipes Build
    runs-on: ubuntu-24.04
    steps:
      - name: Print latest commit
        run: echo ${{ github.sha }}
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Use Node.js specified in the '.nvmrc' file
        uses: actions/setup-node@v4
        with:
          node-version-file: '.nvmrc'
      - name: Install pnpm
        uses: pnpm/action-setup@v4
      - name: Install node dependencies recursively
        uses: nick-fields/retry@v3
        with:
          command: pnpm i
          timeout_minutes: 15
          max_attempts: 3
          retry_on: error
      - name: Check code style and formatting
        if: ${{ github.event_name == 'pull_request' }}
        run: |
          pnpm lint:fix
          pnpm reformat-files
          pnpm package
