name: Build and Deploy Staging Instance

on:
  push:
    branches: [ main, develop ]

permissions:
  contents: read

jobs:
  build-deploy:
    if: github.repository == 'openstreetmap/id'
    runs-on: ubuntu-latest
    environment: workflows
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
        with:
          node-version-file: '.nvmrc'
      # install and build development version of id-tagging-schema
      - name: Checkout the id-tagging-schema repository code
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          repository: openstreetmap/id-tagging-schema
          path: './id-tagging-schema'
      - run: npm clean-install
        working-directory: './id-tagging-schema'
      - run: npm audit signatures
        working-directory: './id-tagging-schema'
      - run: npm run translations
        working-directory: './id-tagging-schema'
        env:
          transifex_password: ${{secrets.TX_TOKEN}}
        if: env.transifex_password != null
      - run: npm run dist
        working-directory: './id-tagging-schema'
      - name: id-tagging-schema - Create directories
        run: mkdir dist/id-tagging-schema && mv id-tagging-schema/dist dist/id-tagging-schema/dist
      # build iD using freshest version of presets and ELI
      - run: npm clean-install
      - run: npm install editor-layer-index
      - run: npm audit signatures
      - run: mkdir dist/data
      - run: npm run imagery
      - run: npm run all
      - run: npm run translations
        env:
          transifex_password: ${{secrets.TX_TOKEN}}
        if: env.transifex_password != null
      - run: npm run dist
        env:
          ID_PRESETS_CDN_URL: './id-tagging-schema/'
      # deploy to netlify
      - name: Deploy to Netlify
        env:
          NETLIFY_AUTH_TOKEN: ${{secrets.NETLIFY_AUTH_TOKEN}}
          NETLIFY_SITE_ID: ${{secrets.NETLIFY_SITE_ID}}
        run: npx netlify-cli deploy --no-build --prod --dir=dist
