name: Build, lint and test

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18.x'

      - name: 'Install Dependencies'
        id: install
        run: npm install && npm install @react-native-async-storage/async-storage@1.15.17 axios@1.4.0

      - name: Run prettier
        run: ./node_modules/.bin/prettier -c ./src

      - name: Run eslint
        run: ./node_modules/.bin/eslint ./src --color --max-warnings 0

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18.x'

      - name: 'Install Dependencies'
        id: install
        run: npm install && npm install @react-native-async-storage/async-storage@1.15.17 axios@1.4.0

      - name: 'Build Project'
        id: build
        run: npm run build

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18.x'

      - name: 'Install Dependencies'
        id: install
        run: npm install && npm install @react-native-async-storage/async-storage axios@1.4.0

      - name: Run rests
        run: npm run test
